본문 바로가기

백준107

[백준] 2503번 숫자 야구 (재귀함수) 사용 언어 - Python3 문제 - 2503번 숫자 야구 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 정답 1. 완전 탐색으로 푼 풀이 https://rladuddms.tistory.com/386 [백준] 2503번 숫자 야구 사용 언어 - Python3 문제 - 2503번 숫자 야구 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 rladuddms.tistory.com 2. 재귀함수로 푼 풀이.. 2023. 10. 30.
[백준] 1407번 2로 몇 번 나누어질까 사용 언어 - Python3 문제 - 1407번 2로 몇 번 나누어질까 1407번: 2로 몇 번 나누어질까 자연수 N이 주어지면, 자연수를 유지하면서 N을 2로 몇 번까지 나눌 수 있는지를 생각해 볼 수 있다. 즉, N의 모든 약수 중 2의 거듭제곱 꼴이면서 가장 큰 약수를 생각하는 것이다. 예를 들어 15의 www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 X) 모든 숫자는 1로 나누어 떨어짐 -> F(A)는 기본 최소 A이다. 2의 거듭제곱으로 나눠주면서, 최소 몇개가 2의 거듭제곱으로 나눠지는지 확인한 후 그 값만큼 더해준다. A부터 B 구간 = B-A+1 = B-(A-1) => A에 1을 빼주고 tmp_a와 tmp_b를 계산한 후, print(tmp_b - tmp_a) .. 2023. 9. 22.
[백준] 14232번 보석 도둑 사용 언어 - Python3 문제 - 14232번 보석 도둑 14232번: 보석 도둑 희대의 도둑 효빈이는 세계 최고의 보석가게 영선상에 잠입할 계획이다. 이 영선상은 최고의 보석가게답게 최고의 보안장치를 두고 있는데, 이 보안장치를 해제하지 않는다면 보석을 여러 개 www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 O) n을 i로 나눴을 때 0이라면 = 약수라면, n = n/i로 업데이트 반복한다. answer 빈 리스트를 만들어줘서 약수들 저장! n이 1이 아니라면, 마지막 n의 값을 answer에 추가해준다. 예. n=15 => [3], n=15/3=5 => [3,5] n = int(input()) answer = [] for i in range(2, int(n**0.5).. 2023. 9. 22.
[백준] 11653번 소인수분해 사용 언어 - Python3 문제 - 11653번 소인수분해 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 O) n을 i로 나눴을 때 0이라면 = 약수라면, n = n/i로 업데이트 같은 i로 나눈 값이 0으로 나누어 떨어진다면 계속 i로 나눠줌 안 나누어 떨어질 때까지! 반복 n = int(input()) if n == 1: print('') else: for i in range(2, n+1): if n % i == 0: while n % i == 0: print(i) n = n / i 레퍼런스 정답 깃허브 https://github.com/yyeongeun/codingtest/.. 2023. 9. 21.
[백준] 1979번 소수 찾기 사용 언어 - Python3 문제 - 1979번 소수 찾기 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 O) int(num**0.5) + 1 약수 구할 때, 모든 값으로 나누지 말고, 루트한 값까지만 나눠주기 n = int(input()) nums = map(int, input().split()) answer = 0 for num in nums: cnt = 0 if num > 1: for i in range(2,int(num**0.5)+1): if num % i == 0: cnt += 1 # 소수 아닌 경우 if cnt == .. 2023. 9. 21.
[백준] 15736번 청기 백기 사용 언어 - Python3 문제 - 15736번 청기 백기 15736번: 청기 백기 예제 입력 1의 경우 1, 2, 3번 깃발이 존재하고, 3명의 선수가 참가한다. 첫 번째 선수는 1의 배수의 번호를 가진 깃발을 뒤집는다. 초기에 청색이였던 깃발은 첫 번째 선수에 의해 모두 백기로 된 www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 X) 수학적 사고는 문제를 빠르게 획기적으로 풀 수 있도록 해준다! 1. 직접 그려서 특징을 찾아내기 2. 제곱근 구현 루트후 정수 변환 n = int(input()) answer = int(n**0.5) print(answer) 레퍼런스 정답 깃허브 https://github.com/yyeongeun/codingtest/blob/main/BAE.. 2023. 9. 21.
[백준] 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.