본문 바로가기

Algorithms/코테 문풀86

[백준 11866번] 요세푸스 문제 0 문제 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 from collections import deque queue = deque() josephus = [] n, k = map(int, input().split()) for i in range(1, n + 1): queue.append(i) while queue: for i in range(k - 1): queue.append(queue.popleft()) josephus.append(queue.popleft()) print("") range(k - 1) 부분을 이해하는데 좀 걸렸다. 손으로 하나 하나 넣어보다보면 이해가 간다. k번째가.. 2023. 10. 10.
[백준 1920번] 수 찾기, 이진 탐색 알고리즘 문제 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 - 내 풀이 import sys input = sys.stdin.readline def binary_search(array, target, start, end): if start > end: return False mid = (start + end) // 2 if array[mid] == target: return True elif array[mid] > target: return binary_searc.. 2023. 10. 9.
[백준 2503번] 숫자 야구, 반례 문제 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 풀이 아이디어 입력받은 세 자리수를 각 자릿수로 나눠줘 숫자가 같고 위치도 같다면 strike, 숫자가 같고 위치는 다르다면 ball로 개수를 세준다. 입력받은 strike, ball 수와 n번 일치한다면 경우의 수를 세준다. - 틀린 코드 import sys input = sys.stdin.readline N = int(input().rstrip()) answer = 0 hint = [list(map(int, input().split())) for _ i.. 2023. 9. 14.
[백준 19532번] 수학은 비대면강의입니다 문제 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 풀이 - 완전탐색적 풀이 a, b, c, d, e, f = map(int, input().split()) for x in range(-1000, 1001): for y in range(-1000, 1001): if a * x + b * y == c: if d * x + e * y == f: print(x, y) break a, b, c, d, e, f 입.. 2023. 9. 14.
[백준 14568번] 2017 연세대학교 프로그래밍 경시대회 문제 14568번: 2017 연세대학교 프로그래밍 경시대회 규칙에 맞게 사탕을 분배하는 경우의 수를 출력한다. 택희, 영훈이, 남규가 받은 사탕의 수를 각각 A, B, C개라고 할 때, 서로 다른 (A, B, C) 순서쌍의 수를 세면 된다. 만일 규칙에 맞게 사탕을 분 www.acmicpc.net 풀이 - 완전 탐색 풀이 N = int(input()) answer = 0 for a in range(1, N + 1): for b in range(1, N + 1): for c in range(1, N + 1): if a + b + c == N: if c >= b + 2: if a != 0 and b != 0 and c != 0: if a % 2 != 1: answer += 1 print(answer) 모든 .. 2023. 9. 14.
[백준 2156번] 포도주 시식 문제 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 풀이 아이디어 DP 개념: 2023.08.27 - [Algorithms/이코테] - [Dynamic Programming] - 다이나믹 프로그래밍이란? / 문제 1로 만들기 # 포도주 잔의 개수 입력 받기 n = int(input()) # 포도주 list 입력 받기 + 여유 인덱스로 1 ~ n으로 맞춰주기 k = [0] + [int(input()) for _ in range(n)] + [0] .. 2023. 8. 29.