코딩 테스트/Baekjoon
백준 온라인 져지 문제 중 풀이해본 문제들의 해결 과정과 코드를 공유하는 내용을 담습니다.
-
문제 보기 : 11047번: 동전 0 문제정답률 : 53%작성 코드n,k = map(int,input().split())money = [int(input()) for _ in range(n)]money = money[::-1]answer = 0for i in range(len(money)): if k // money[i] > 0 :#and k % money[i] == 0: answer += k//money[i] k %= money[i]print(answer)풀이DP 문제인줄 알고 겁먹었는데, 그냥 쉬운 문제의 정석이었다.그래서 해설도 패스...
S4 11047. 동전 0문제 보기 : 11047번: 동전 0 문제정답률 : 53%작성 코드n,k = map(int,input().split())money = [int(input()) for _ in range(n)]money = money[::-1]answer = 0for i in range(len(money)): if k // money[i] > 0 :#and k % money[i] == 0: answer += k//money[i] k %= money[i]print(answer)풀이DP 문제인줄 알고 겁먹었는데, 그냥 쉬운 문제의 정석이었다.그래서 해설도 패스...
2024.11.29 -
문제 보기 : 10828번: 스택 문제정답률 : 38%작성 코드import sysinput = sys.stdin.readlinen = int(input().strip())stack = []for _ in range(n): word = input().rstrip() if word == 'pop': if not stack: print(-1) else: print(stack.pop()) elif word == 'size': print(len(stack)) elif word == 'empty': if stack: print(0) else: ..
S4 10828. 스택문제 보기 : 10828번: 스택 문제정답률 : 38%작성 코드import sysinput = sys.stdin.readlinen = int(input().strip())stack = []for _ in range(n): word = input().rstrip() if word == 'pop': if not stack: print(-1) else: print(stack.pop()) elif word == 'size': print(len(stack)) elif word == 'empty': if stack: print(0) else: ..
2024.11.29 -
문제 보기 : 1406번: 에디터 문제정답률 : 26%작성 코드from collections import dequeimport sysinput = sys.stdin.readlineleft = deque(list(input().rstrip()))right = deque()k = int(input().strip())for _ in range(k): word = input().strip() if word == 'L': if left: right.appendleft(left.pop()) elif word == 'D': if right: left.append(right.popleft()) elif word == 'B': ..
S2 1406. 에디터문제 보기 : 1406번: 에디터 문제정답률 : 26%작성 코드from collections import dequeimport sysinput = sys.stdin.readlineleft = deque(list(input().rstrip()))right = deque()k = int(input().strip())for _ in range(k): word = input().strip() if word == 'L': if left: right.appendleft(left.pop()) elif word == 'D': if right: left.append(right.popleft()) elif word == 'B': ..
2024.11.27 -
문제 보기 : 2217번: 로프 문제정답률 : 43%작성 코드k = int(input())rope = [int(input()) for _ in range(k)]rope.sort()weight = 0for i in range(k): standard = rope[i] weight = max(weight,standard*(k-i))print(weight)풀이쉽게 생각하면 된다.[10,15]가 있다면, 뒤 무게는 앞 무게를 무조건 감당할 수 있으니 *2배를 해도 된다.다른 예시로는 [15, 20, 35, 100]를 확인하겠다. 15를 사용하고 싶으면 최대 수용 가능 무게는 60이 될 거고, 20을 사용하고 싶으면 15를 제외하고, 203=60이 될 것이다. 35를 사용하고 싶으면 352=70이 될거..
S4 2217. 로프문제 보기 : 2217번: 로프 문제정답률 : 43%작성 코드k = int(input())rope = [int(input()) for _ in range(k)]rope.sort()weight = 0for i in range(k): standard = rope[i] weight = max(weight,standard*(k-i))print(weight)풀이쉽게 생각하면 된다.[10,15]가 있다면, 뒤 무게는 앞 무게를 무조건 감당할 수 있으니 *2배를 해도 된다.다른 예시로는 [15, 20, 35, 100]를 확인하겠다. 15를 사용하고 싶으면 최대 수용 가능 무게는 60이 될 거고, 20을 사용하고 싶으면 15를 제외하고, 203=60이 될 것이다. 35를 사용하고 싶으면 352=70이 될거..
2024.11.27 -
문제 보기 : 1065번: 한수 문제정답률 : 54%작성 코드def is_hannum(num): global answer num = str(num) ; isittrue=True gap = int(num[1])-int(num[0]) for i in range(1,len(num)-1): if int(num[i+1])-int(num[i])!=gap: isittrue=False break if isittrue: answer += 1num = int(input())if num 풀이 자리수마다 같은 간격을 가지는 수를 “한수”라고 한다고 한다. 수학 전공인데도 처음 들어봤다.. 처음에는 1→ 12 → 123 → 1234 이..
S4 1065. 한수문제 보기 : 1065번: 한수 문제정답률 : 54%작성 코드def is_hannum(num): global answer num = str(num) ; isittrue=True gap = int(num[1])-int(num[0]) for i in range(1,len(num)-1): if int(num[i+1])-int(num[i])!=gap: isittrue=False break if isittrue: answer += 1num = int(input())if num 풀이 자리수마다 같은 간격을 가지는 수를 “한수”라고 한다고 한다. 수학 전공인데도 처음 들어봤다.. 처음에는 1→ 12 → 123 → 1234 이..
2024.11.27 -
문제 보기 : 7569번: 토마토 문제정답률 : 42%작성 코드m,n,h = map(int,input().split()) #가로 세로 높이arr = [[list(map(int,input().split())) for _ in range(n)] for i in range(h) ]visited = [[[False]*m for _ in range(n)] for i in range(h) ]from collections import dequedirection = [(-1,0,0),(1,0,0),(0,-1,0),(0,1,0),(0,0,-1),(0,0,1)]dd = deque()for i in range(h): #높이 for j in range(n): #세로 for k in range(m): #가로..
G5 7569. 토마토문제 보기 : 7569번: 토마토 문제정답률 : 42%작성 코드m,n,h = map(int,input().split()) #가로 세로 높이arr = [[list(map(int,input().split())) for _ in range(n)] for i in range(h) ]visited = [[[False]*m for _ in range(n)] for i in range(h) ]from collections import dequedirection = [(-1,0,0),(1,0,0),(0,-1,0),(0,1,0),(0,0,-1),(0,0,1)]dd = deque()for i in range(h): #높이 for j in range(n): #세로 for k in range(m): #가로..
2024.11.27 -
문제 보기 : 1764번: 듣보잡 문제정답률 : 41%작성 코드n, m = map(int, input().split()) #듣도 못한, 보도 못한nosee = set()for _ in range(n): nosee.add(input())noheard = set()for _ in range(m): noheard.add(input())answer = nosee.intersection(noheard)answer = list(answer)answer.sort()print(len(answer))print(*answer,sep='\n')풀이 진짜 엄청 오랜만에 set + 교집합 조합을 구현했다. 음.. 쉬운 것 같아서 설명은 생략한다.
S4 1764. 듣보잡문제 보기 : 1764번: 듣보잡 문제정답률 : 41%작성 코드n, m = map(int, input().split()) #듣도 못한, 보도 못한nosee = set()for _ in range(n): nosee.add(input())noheard = set()for _ in range(m): noheard.add(input())answer = nosee.intersection(noheard)answer = list(answer)answer.sort()print(len(answer))print(*answer,sep='\n')풀이 진짜 엄청 오랜만에 set + 교집합 조합을 구현했다. 음.. 쉬운 것 같아서 설명은 생략한다.
2024.11.26 -
문제 보기 : 4949번: 균형잡힌 세상 문제정답률 : 32%작성 코드# import sys# input = sys.stdin.readlinewhile True: inp = list(input()) a = 0 b = 0 p = True if inp == ['.']: break before = [] for i in inp: if i == '[': b += 1 before.append('[') elif before and before[-1] == '[' and i == ']': b -= 1 before.pop() elif (not be..
S2 4949. 균형잡힌 세상문제 보기 : 4949번: 균형잡힌 세상 문제정답률 : 32%작성 코드# import sys# input = sys.stdin.readlinewhile True: inp = list(input()) a = 0 b = 0 p = True if inp == ['.']: break before = [] for i in inp: if i == '[': b += 1 before.append('[') elif before and before[-1] == '[' and i == ']': b -= 1 before.pop() elif (not be..
2024.11.25