본문 바로가기

백준 코테46

[백준] 1090번 체커 사용 언어 - Python3 문제 - 1090번 체커 1090번: 체커 N개의 체커가 엄청 큰 보드 위에 있다. i번 체커는 (xi, yi)에 있다. 같은 칸에 여러 체커가 있을 수도 있다. 체커를 한 번 움직이는 것은 그 체커를 위, 왼쪽, 오른쪽, 아래 중의 한 방향으로 한 칸 www.acmicpc.net 정답 경우의 수 줄이는 완전 탐색 (정답 맞춘 여부 X) 아이디어 생각하기 1. 2차원 => 1차원으로 계산 가능 2차원 = 1차원 계산 + 1차원 계산 이동 횟수 = (만나려는 곳의 x좌표 - 각 체커의 x좌표) + (만나려는 곳의 y좌표 - 각 체커의 y좌표) 2. 우리의 집 중 한 곳에서 모이기 이동 횟수를 최소화하기 위해선, 가장 가운데 있는 좌표위치가 가장 덜 움직인다. => x의 범위 :.. 2023. 9. 10.
[백준] 2503번 숫자 야구 (완전탐색) 사용 언어 - Python3 문제 - 2503번 숫자 야구 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 정답 단순구현 (정답 맞춘 여부 X) 1. abc 세 숫자를 모두 만들어준다. abc는 겹치지 말아야하며, 1부터 시작한다 2. 스트라이크와 볼 수 확인해준다. abc와 입력받은 숫자의 위치가 같다면 스트라이크 += 1 위치는 다르지만, abc 안에 있다면 볼 += 1 3. 볼과 스트라이크 수가 입력받은 수와 같다면 counter +=1 하나 성공! 4. counter가 n과 같아지면, 모든 조건을 충족.. 2023. 9. 10.
[백준] 2530번 인공지능 시계 사용 언어 - Python3 문제 - 2530번 인공지능 시계 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 정답 단순구현 (정답 맞춘 여부 O) 1. 초에 d(초)를 더해준다. 2. 초를 60으로 나눈 몫을 분에, 분을 60으로 나눈 몫을 시에 더해준다. 3. 나머지로 a,b,c를 업데이트해준다. a,b,c = map(int,input().split()) # 현재 시,분,초 d = int(input()) # 더해야할 시간(초) c += d b += c//60 a += b//60 c.. 2023. 9. 10.
[백준] 19532번 수학은 비대면강의입니다 사용 언어 - Python3 문제 - 수학은 비대면강의입니다. 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 정답 완전탐색 (정답 맞춘 여부 O) 1. 소거법 a,b,c,d,e,f = map(int,input().split()) x = (c*e-f*b)//(a*e-d*b) y = (c*d-f*a)//(b*d-e*a) print(x,y) 2. 완전 탐색 끝판왕 해답 각 정ㅅ들이 -99에서 999까지로 범위제.. 2023. 9. 10.
[백준] 14568번 2017 연세대학교 프로그래밍 경시대회 사용 언어 - Python3 문제 - 2017 연세대학교 프로그래밍 경시대회 14568번: 2017 연세대학교 프로그래밍 경시대회 규칙에 맞게 사탕을 분배하는 경우의 수를 출력한다. 택희, 영훈이, 남규가 받은 사탕의 수를 각각 A, B, C개라고 할 때, 서로 다른 (A, B, C) 순서쌍의 수를 세면 된다. 만일 규칙에 맞게 사탕을 분 www.acmicpc.net 정답 완전탐색 - 각 조건 생각하기 (정답 맞춘 여부 O) 1. range 범위 지정하기 영훈이는 1부터 N-3까지 가능 남규는 영훈보다 2이상이어야 하므로 영훈+2부터 N-1까지 가능 택희는 N에서 영훈과 남규를 뺀 나머지이고, 1보다 크며 짝수조건을 만족 => cnt += 1 N = int(input()) # 사탕 N개 cnt = 0 f.. 2023. 9. 10.
[Python3] 백준 1697번 숨바꼭질 사용 언어 - Python3 문제 - 숨바꼭질 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 정답 BFS 재귀함수 (정답 맞춘 여부 X) from collections import deque def bfs(): q = deque() q.append(n) while q: x = q.popleft() if x == k: print(dist[x]) break for nx in (x-1,x+1,x*2): if 0 2023. 4. 19.
[Python3] 백준 2117번 원형 댄스 사용 언어 - Python3 문제 - 원형 댄스 2117번: 원형 댄스 N(1 ≤ n ≤ 32767)명의 사람들이 잔치에서 춤을 추게 되었다. 처음에는 1번부터 N번까지의 사람들이 차례대로, 둥글게 손을 잡고 서 있다. 그리고 춤이 끝날 때에는 이 순서가 반대(거꾸로, 뒤집힌) www.acmicpc.net 정답 규칙 찾기 구현 (정답 맞춘 여부 X) n 경우의 수 0 n == 3 => 경우의 수 1 n >= 4 => 등차수열 이용 2, 4, 6, 9, 12, 16, 20... +2씩 3번 +3씩 2번 +4씩 2번 n = int(input()) if n 2023. 4. 19.
[Python3] 백준 1713번 후보 추천하기 사용 언어 - Python3 문제 - 후보 추천하기 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 정답 list 인덱싱 구현 (정답 맞춘 여부 X) 사진틀과 사진틀 개수를 저장할 list를 만든다. n = int(input()) #사진들 개수 c = int(input()) # 전체 학생의 총 추천 횟수 vote = list(map(int,input().split())) # 추천받은 학생을 나타내는 번호 pic = [] # 사진틀 num_pic = [] # 사진틀 추천개수 for v in vote: .. 2023. 4. 19.
[Python3] 백준 1544번 사이클 단어 사용 언어 - Python3 문제 - 사이클 단어 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 정답 큐를 활용한 구현 (정답 맞춘 여부 X) 1. 각 word를 deque로 저장해준다. picture -> p,i,c,t,u,r,e 2. dq.append(dq.popleft()) dq의 맨 왼쪽 값 p를 없애면서 가장 오른쪽에 append한다. i,c,t,u,r,e,p의 형태 각 원소를 합한 save값이 원래 값인 picture까지 한바퀴를 다 돌면 break save값이 word 리스트 안 다른 원소들에 속.. 2023. 4. 19.
[Python3] 1235번 학생 번호 사용 언어 - Python3 문제 - 학생 번호 1235번: 학생 번호 첫째 줄에는 학생의 수 N(2≤N≤1,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 학생의 학생 번호가 순서대로 주어진다. 모든 학생들의 학생 번호는 서로 다르지만 그 길이는 모두 같으며, 0부 www.acmicpc.net 정답 이중반복문 구현 (정답 맞춘 여부 X) nums[0][-1] , nums[1][-1]을 비교해야하는 문제 answer = [] 빈 리스트에 num[j][-i:] append하기 answer 안에 해당 값이 있다면 break. 없을 때만 리스트에 append answer 안에 들어있는 원소가 n개가 되었다면 i를 출력하고 break n = int(input()) num = [] for _ in rang.. 2023. 4. 9.