분류 전체보기(30)
-
[백준] 빙고
문제보기 - https://www.acmicpc.net/problem/2578문제명 - 빙고난이도 - S4문제유형 - 구현풀이일자 - 25.03.10 📌 문제 탐색하기5×5 빙고판이 주어지고 사회자가 한줄의 5개씩 숫자를 부름사회자가 부른 숫자를 빙고판에서 지우고 가로, 세로, 대각선 중 빙고 3줄이 완성되는 순간 사회자가 몇 번째 숫자를 불렀는지 출력해야 함 🛠 시간복잡도 확인최악의 경우 (O(25)): 숫자 최대 25개 탐색하는 경우로 충분히 빠름 📌 코드 설계하기빙고판 입력받기[list(map(int, sys.stdin.readline().split())) for _ in range(5)] 활용사회자가 부르는 숫자 입력 후 처리하기불린 숫자는 0으로 표시가로, 세로, 대각선 빙고를 ..
2025.03.10 -
[백준] 덩치
문제보기 - https://www.acmicpc.net/problem/7568문제명 - 덩치난이도 - S5문제유형 - 구현풀이일자 - 25.03.09 📌 문제 탐색하기전체 사람의 수 N을 입력받음2 ≤ N ≤ 50N개의 줄에는 각 사람의 몸무게와 키를 나타내는 양의 정수 x와 y가 하나의 공백을 두고 입력받음10 ≤ x, y ≤ 200두 사람을 비교하여 몸무게와 키 둘 다 더 큰 경우에만 덩치가 크다고 판단함덩치 등수를 한 줄로 출력해야 함 단, 공백문자로 분리되어야 함 🛠 시간복잡도 확인 각각의 사람을 다른 모든 사람과 비교해야 함 -> 완전탐색이중 for문을 활용하기때문에 O(N²)의 시간복잡도를 가짐N(최대 50)이므로 O(2500) 연산으로 충분히 가능 📌 코드 설계하기전체 사람의..
2025.03.09 -
[백준] 나무 조각
문제보기 - https://www.acmicpc.net/problem/2947문제명 - 나무 조각난이도 - B1문제유형 - 구현풀이일자 - 25.03.08 📌 문제 탐색하기1~5까지 중복되지 않은 조각을 입력받음두 인접한 조각을 비교하여 큰 숫자가 오른쪽으로 이동하도록 교환 -> 버블정렬조각이 이동할 때마다 상태를 출력 🛠 시간복잡도 확인최악의 경우 [5, 4, 3, 2, 1]에서 총 10번(4+3+2+1)의 비교 및 교환 발생버블 정렬과 동일한 O(N²) 연산 수행 📌 코드 설계하기다섯 개의 정수를 입력받고 리스트에 저장하기list(map(int, sys.stdin.readline().split())) 활용리스트에서 인접한 두 요소를 비교하기정렬이 완료될 때까지 반복 while N !=..
2025.03.08 -
[백준] 커트라인
문제보기 - https://www.acmicpc.net/problem/25305문제명 - 커트라인난이도 - B2문제유형 - 구현풀이일자 - 25.03.07 📌 문제 탐색하기응시자 수 N과 상을 받는사람 수 k를 공백을 사이에 두고 입력받음1 ≤ N ≤ 1000, 1 ≤ k ≤ N각 학생의 점수 x를 공백을 두고 입력받음0 ≤ x ≤ 10000상을 받는 커트라인(상위 k번째 점수)을 출력해야 함. 🛠 시간복잡도 확인N이 최대 1000 이므로 정렬 가능정렬을 위해 sort() 사용 -> O(N log N)최종 시간 복잡도: O(N log N) 📌 코드 설계하기응시자 수 N과 상을 받는 사람 수 k 입력받기map(int, sys.stdin.readline().split()) 활용점수 리스트를..
2025.03.07 -
[백준] 생일
문제보기 - https://www.acmicpc.net/problem/5635문제명 - 생일난이도 - S5문제유형 - 정렬풀이일자 - 25.03.06 📌 문제 탐색하기학생 수 N을 입력받음 (1 ≤ N ≤ 100)각 학생의 이름과 생일이 "이름 dd mm yyyy" 형식으로 주어짐이름의 길이 ≤ 151990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31 (0으로 시작하지 않음)이름과 생일이 중복되지 않음가장 나이가 적은 사람과 가장 나이가 많은 사람의 이름을 차례로 출력 🛠 시간복잡도 확인N ≤ 100으로 충분히 작은 범위정렬을 위해 sorted() 사용 -> O(N log N)최종 시간 복잡도: O(N log N) 📌 코드 설계하기반 학생 수 N 입력받기 -> ..
2025.03.06 -
[백준] 단어 정렬
문제보기 - https://www.acmicpc.net/problem/1181문제명 - 단어 정렬난이도 - S5문제유형 - 정렬풀이일자 - 25.03.05 📌 문제 탐색하기N개의 단어를 입력받음 (1 ≤ N ≤ 20,000)길이가 짧은 것부터 (오름차순)길이가 같으면 사전 순으로중복된 단어는 한번만 출력 -> set()단어의 길이는 최대 50 🛠️ 시간복잡도 확인N개 입력받을 때 O(N), 길이가 짧은 것 부터 정렬할때 sorted 함수를 써서 O(N log N)이므로 최종적으로 O(N log N) => N이 최대 20,000이여도 가능!! 📌 코드 설계하기단어의 개수 N 입력받기 -> sys.stdin.readline().strip()각 단어들을 입력받을 때 중복제거도 같이하기 -> ..
2025.03.05