전체 글 91

백준 [2798.블랙잭] | Python

✏️ 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net ✏️ 풀이방법 1. m에 최대한 가까운 카드를 합하기 위해 sort()메소드로 card를 정렬한다. 2. 3중 for문으로 x,y,z에 카드 세장을 뽑아 m에 가까운 최대합을 뽑는다. 📌 코드 n,m = map(int,input().split()) card = list(map(int,input().split())) card.sort() maxtotal =..

Python/online judge 2024.01.29

백준 [2751.수 정렬하기2] | Python

✏️ 문제https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.net ✏️ 풀이방법1. 2750. 수 정렬하기에 비교하여 N(1 ≤ N ≤ 1,000,000)의 값이 크기에 시간초과가 발생하여 sys를 사용하여 입력받아야 한다.2. sorted() 함수를 사용하여 정렬 📌 코드import sysinput=sys.stdin.readlinen = int(input())num = []for i in range(n): num.append(int(..

Python/online judge 2024.01.29

백준 [2231.분해합] | Python

✏️ 문제https://www.acmicpc.net/problem/2231 2231번: 분해합어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이www.acmicpc.net ✏️ 풀이방법1. digit 리스트에 n의 숫자를 각 자리수로 담는다. ex) 216 [[2,1,6]]2. 주어진 숫자만큼 반복 실행하며 digit원소의 합과 자기 자신 숫자를 더했을 때 처음 입력한 자연수와 같다면 출력한다. 📌 코드n = int(input())for i in range(0,n+1,+1): digit = [] digit.append..

Python/online judge 2024.01.29

백준 [10814.나이순 정렬] | Python

✏️ 문제 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net ✏️ 풀이방법 1. 가입한 순서대로 입력했기 때문에 나이순으로만 정렬 📌 코드 n = int(input()) member = [list(map(str,input().split())) for _ in range(n)] smember = sorted(member,key=lambda x:int(x[0])) for i in range(n): print(smember[i][0], smember[i][..

Python/online judge 2024.01.29

백준 [11651.좌표 정렬하기2] | Python

✏️ 문제 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net ✏️ 풀이방법 - 문제에서 y좌표를 오름차순으로 정렬하고, x 좌표가 증가하는 순서로 정렬하라 하였지만 이대로 수행하면 시행착오2와 같은 문제가 발생한다. 1. x좌표를 오름차순으로 먼저 정렬 2. y좌표를 오름차순으로 정렬 📌 코드 n = int(input()) place = [list(map(int,input().split()..

Python/online judge 2024.01.29

백준 [11650.좌표 정렬하기] | Python

✏️ 문제https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.www.acmicpc.net ✏️ 풀이방법1. x,y좌표를 입력받아 오름차순으로 정렬한다.- sort()메소드와 sorted()함수 모두 풀이 가능 📌 코드n = int(input())place = [list(map(int,input().split())) for _ in range(n)]place.sort()for i in range(n): print(*pl..

Python/online judge 2024.01.29

백준 [3009.네 번째 점] | Python

✏️ 문제 https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net ✏️ 풀이방법 - 직사각형의 한 변은 같은 축에서 같은 좌표의 점이 2개 필요하다. (예를들어 x축에서 x좌표가 3인 점이 두개 필요하다는 것이다. y값은 서로 다르다.) 1. 이를 활용해서 직사각형의 4개의 점 중 x,y각 축에서 좌표가 같은 점이 2개씩 있는 것을 확인한다. 2. x좌표와 y좌표를 담는 리스트를 각각 생성 3. 리스트 안에 값이 1개만 있는 좌표의 값을 찾는다. 📌 코드 points = [list(map(int,input().split())) fo..

Python/online judge 2024.01.29

정보처리기사[2과목] | 데이터 모델링

데이터모델링 설계 순서 1. 데이터 베이스 계획 2. 요구사항 분석 : DB에 저장될 내용을 정하기 위해 사용자 요구사항분석 3. 개념적 데이터 설계 : DBMS 독립적 개념 스키마 설계, 트랜잭션 모델링 및 정의 4. 논리적 데이터 설계 : DBMS에 맞는 스키마, 트랜잭션 인터페이스 설계 5. 물리적 데이터 설계 : DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계 6. 구현 데이터모델링 3단계 1) 개념적 모델링(추상적) - 실제 데이터에 대해서 개체간의 상관관계를 표현 - ex. 개체-관계모델(E-R모델, ER다이어그램) 2) 논리적 모델링 - 개념적 설계로 만들어진 엔티티와 속성간의 관계를 구조적으로 정의하는 것 (DBMS의 데이터골격(스키마)구현) - 시스템으로 구축하고자 하는 업무에 대..

정보처리기사[5과목] | 정보 보안

정보 보안 3요소 1) 기밀성(Confidentiality) : 인가된 사용자만 정보자산에 접근 2) 무결성(Integrity, 완전성) : 시스템 내의 정보는 오직 인가된 사용자가 인가된 방법으로만 수정가능 2) 가용성(Availity) : 사용자가 필요할 때 접근할 수 있는 능력 암호화 알고리즘 암호화(Encryption) : 평문 → 암호문 복호화(Decryption) : 암호문 → 평문 비밀키 암호화 기법(Private Key) - 대칭키 암호화 기법, 개인키 암호화 기법 - 같은 키로 암호화하고 복호화 함 - 암호화/복호화 속도가 빠르고 알고리즘이 단순 - 스트림방식과 블록방식으로 분류 [스트림방식] : 평문의 길이와 동일한 스트림(stream)을 생성하여 비트 단위로 암호화(XOR연산수행) 종..

백준 [1181.단어 정렬] | Python

✏️ 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 단어의 입력을 담을 리스트(words)와 정렬된 단어를 담을 리스트(sortword)를 생성한다. 2. 중복된 단어는 하나만 남기기위해 집합(set)자료형으로 중복을 제거한다. 3. 사전순으로 정렬하기 위해 sort()메소드를 사용한다. 4. 문자열의 길이는 50이 넘지 않는 것을 활용해서 문자열의 길이를 반복을 통해 확인해서 길이가 짧은 순으로 리스트(s..

Python/online judge 2024.01.15