본문 바로가기

분류 전체보기84

[백준 13335번] 트럭 - 파이썬 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 💡문제 분석 요약 강을 가로지르는 하나의 차선으로 된 다리가 하나 있다. 이 다리를 n 개의 트럭이 건너가려고 한다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다. 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. 다리의 길이는 w 단위길이(unit distance)이며, 각 트럭들은 하나의 단위시간(unit ti.. 2024. 4. 7.
[백준 18870번] 좌표 압축 - 파이썬 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 💡문제 분석 요약 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 💡알고리즘 설.. 2024. 3. 31.
[백준 19583번] 싸이버개강총회 - 파이썬 https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net 💡문제 분석 요약 개강총회가 시작하기 전에 채팅 기록이 있고, 개강총회가 끝난 후 채팅 기록이 있는 사람의 수를 출력한다. 💡알고리즘 설계 1. 개강총회의 시작시간, 끝난 시간, 스트리밍 종료 시간을 입력받는다. 2. 시와 분으로 입력된 시간을 분 단위로 변환한다. 3. 채팅 시간과 닉네임을 입력받고, 채팅 시간을 분 단위로 변환한다. 4. 채팅 시간이 시작 .. 2024. 3. 31.
[백준 1966번] 프린터 큐 - 파이썬 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 💡문제 분석 요약 가장 중요한 문서를 먼저 프린터하고, 현재 문서보다 더 중요한 문서가 있을 경우 현재 문서를 맨 뒤 순서로 보낸다. 내가 원하는 문서는 몇번째로 출력되는가? 💡알고리즘 설계 1. 현재 문서 리스트에서 가장 중요도가 높은 문서의 중요도를 구한다. 2. 현재 문서보다 더 중요한 문서가 있을 경우, 현재 문서를 제일 뒷 순서로 보낸다. 3. 현재 문서가 가장 중요한 문서일 경우, 문서를 .. 2024. 3. 23.
[백준 5397번] 키로거 - 파이썬 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 💡문제 분석 요약 글자를 입력받고, 가 입력될 경우엔 커서를 오른쪽으로 이동하여 글자를 입력한다. -가 입력될 경우 커서 왼쪽의 글자를 삭제한다. 💡알고리즘 설계 스택과 연결리스트로 풀 수 있는 문제이다. 커서를 index로 두고, list.insert(index, c)로 해당 위치에 글자를 삽입하는 방법은 insert()의 시간복잡도가 O(N)이고, 문자열의 최대 길이가 백만이므로 시간초.. 2024. 3. 23.
[백준 2630번] 색종이 만들기 - 파이썬 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.www.acmicpc.net 💡문제 분석 요약아래와 같이 정사각형 모양으로 나누어 진 종이가 있을 때, 파란색 종이의 개수와 흰색 종이의 개수를 구하여라. 💡알고리즘 설계현재 칸의 종이 색과 첫번째 칸의 종이의 색이 다르면 현재 종이를 4등분으로 자르고, 다시 탐색한다.현재 종이에 있는 모든 칸이 색깔이 같다면, 그 색의 count를 하나 더한다.1. 종이의 색 정보를 입력받는다2. cut 함수를 .. 2024. 3. 16.
[백준 20920번] 영단어 암기는 괴로워 - 파이썬 https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단www.acmicpc.net 💡문제 분석 요약영단어를 입력받고, 자주 입력받은 횟수, 단어 길이, 사전순으로 정렬하여 출력한다. 💡알고리즘 설계1. 해시를 이용하여 key에 단어를, value에 단어가 입력된 횟수를 하나씩 늘리면서 저장한다.- hash에 입력받은 단어가 있는지 체크하고, 없으면 hash[word]=1, 있으면 hash[word]+=1로 갯수.. 2024. 3. 16.
[백준 1913번] 달팽이 - 파이썬 https://www.acmicpc.net/problem/1913 💡문제 분석 요약 구현 문제이다. 달팽이가 배열의 가운데서 시작해, 시계방향으로 숫자를 1씩 키우며 움직인다. 최종적으로 완성된 배열과 같이 입력받은 숫자의 좌표를 출력하라. 💡알고리즘 설계 1. 달팽이가 지나갈 배열을 0으로 초기화한다. 2. 달팽이가 (0,0) 위치에서 N*N을 저장하며 시작한다. 3. 숫자를 하나씩 줄이며, 다음 위치가 배열의 안이며, 다음 위치의 배열에 0이 저장되어 있다면 그 위치로 이동하여 줄어든 숫자를 저장한다. 4. 다음 위치가 배열 밖이거나 이미 다른 숫자로 채워져 있다면 방향을 바꾸고, 다시 이동한다. 방향은 시계 반대 방향으로 변경한다. 💡코드 import sys input = sys.stdin.read.. 2024. 3. 9.
[백준 18429번] 근손실 - 파이썬 https://www.acmicpc.net/problem/18429💡문제 분석 요약매일 중량이 K만큼 줄어들 때, 매일 다른 운동 키트를 사용하여 중량을 500 이상으로 유지시킬 수 있는 경우의 수를 구하여라. 💡알고리즘 설계1. 운동키트에 들어있는 운동기구로 늘릴 수 있는 중량과 매일 줄어드는 중량을 입력받는다.2. dfs를 이용해 가능한 운동 기구를 다양한 순서로 이용한다.3. 중량이 500 이하인 경우 탐색을 중단한다. 💡코드import sysinput = sys.stdin.readlineN, K=map(int, input().split())kit=list(map(int, input().split()))visited=[False]*(N)weight=500result=0def search(cou.. 2024. 3. 9.