본문 바로가기

코딩테스트

(55)
[Python/백준] 2798번: 블랙잭 (Python) 문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 풀이 - 구현, 완전탐색, 브루트포스 문제 - 모든 경우의 수에 대한 카드 3장의 합을 구하면 쉽게 풀리는 문제이다 코드 a, b = map(int, input().split()) arr = list(map(int, input().split())) maxNum = 0 result = 0 for i in range(a): result = 0 for j in range(i+1,..
[백준/파이썬] 14697번: 방 배정하기 (Python) 문제 www.acmicpc.net/problem/14697 14697번: 방 배정하기 정보 초등학교 6학년 여학생들은 단체로 2박 3일 수학여행을 가기로 했다. 학생들이 묵을 숙소에는 방의 정원(방 안에 있는 침대 수)을 기준으로 세 종류의 방이 있으며, 같은 종류의 방들이 여러 www.acmicpc.net 풀이 - 구현, 부르트 포스 문제 - 3중 for문을 이용해 각 방의 정원의 배수만큼 증가시켜 준다. 각 방에 들어가는 인원의 합과 전체 학생수가 같으면 1출력 코드 a, b, c, n = map(int, input().split()) flag = False for i in range(0, n+1, a): # a배수만큼 증가 for j in range(0, n+1, b): # b배수만큼 증가 for ..
[백준/파이썬] 3084번: 사탕게임 (Python) 문제 www.acmicpc.net/problem/3085 풀이 - 완전탐색/ 브루트 포스 알고리즘 - 열의 사탕을 swap 한 뒤, 행과 열의 사탕 최대개수를 각각 구한뒤 비교한다 - 행의 사탕을 swap 한 뒤, 행과 열의 사탕 최대개수를 각각 구한뒤 비교한다 코드 # 3085번. 사탕게임 # 완전탐색 # 가로 사탕 최대 개수 구하기 def checkrow(a): maxNum = 1 for i in range(0,n): cnt = 1 for j in range(1, n): if (a[i][j] == a[i][j - 1]): cnt += 1 maxNum = max(maxNum, cnt) else: cnt = 1 return maxNum # 세로 사탕 최대 개수 구하기 def checkcol(a): max..
[백준/파이썬] 2503번: 숫자 야구 (Python) 문제 www.acmicpc.net/problem/2503 코드 # 2503번 숫자야구/ 완전탐색 import itertools data = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] num = list(itertools.permutations(data, 3)) n = int(input()) removeCount = 0 for _ in range(n): n, s, b = map(int, input().split()) n = list(str(n)) # int는 리스트가 될 수 없다 removeCount = 0 for i in range(len(num)): strike = ball = 0 i -= removeCount # num[0]부터 조회해야함 for j in ran..
[백준/파이썬] 5635번: 생일 (Python) 문제 www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 n = int(input()) data = [] minyear = 2021 for i in range(0,n): data.append(input().split()) data.sort(key=lambda x:(int(x[3]), int(x[2]), int(x[1]))) print(data[-1][0]) print(data[0][0]) 정리 년, 월, 일을 lambda표현식을 이용해 오름차순으로 정렬해준다. data.sort(key=lambda x: x[3]) 은 x[3]을 기준으로..
[백준/파이썬] 1408번: 24 (Python) 문제 www.acmicpc.net/problem/1408 풀이 h,m,s = map(int,input().split(':')) h1, m1, s1 = map(int,input().split(':')) curtime = h*3600 + m*60 + s totime = h1*3600 + m1*60 + s1 if h > h1: totime += 24*3600 time = totime - curtime a = str(time//3600) b = str((time%3600)//60) c = str((time%3600)%60) if (time//3600)//10 == 0: a = "0" + str(time//3600) if ((time%3600)//60)//10 == 0: b = "0" + str((time%360..
[백준/파이썬] 11098번: 첼시를 도와줘! (Python) 문제 www.acmicpc.net/problem/11098 풀이 n = int(input()) for _ in range(n): p = int(input()) max = 0 for _ in range(p): c,name = input().split() c = int(c) if c > max: max = c mName = name print(mName)
[백준/파이썬] 2476번: 주사위 게임 (Python) 문제 www.acmicpc.net/problem/2476 2476번: 주사위 게임 첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. www.acmicpc.net 풀이 n = int(input()) maxMoney = 0 for i in range(n): a,b,c = map(int, input().split()) if a == b == c : maxMoney = max(maxMoney, 10000+a*1000) elif a == b: maxMoney = max(maxMoney, 1000+a*100) elif a == c: maxMoney = max(maxMoney, 1000+a*100) elif b == c: ..