💡 Codeing Test 46

프로그래머스) 이모티콘 할인행사(python)

문제https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 나의 풀이def solution(users, emoticons): answer = [0, 0] data = [10, 20, 30, 40] discount = [] def dfs(L,tmp): if L == len(tmp): discount.append(tmp[:]) return else: for i in data: ..

백준 20165) 인내의 도미노 장인 호석

문제 링크https://www.acmicpc.net/problem/20165   문제 풀이 기본적인 시뮬레이션 문제이다 n,m,r = map(int, input().split())arr=[list(map(int, input().split()))for _ in range(n)]visited = [[True]*m for _ in range(n)]dir = {'E':(0,1),'W':(0,-1),'S':(1,0),'N':(-1,0)}answer = 0입력값을 받아준다나의 풀이의 경우에는 visited배열을 두어서, 넘어지면 False로 해두었다 for _ in range(r): X,Y,D = map(str, input().split()) X = int(X)-1 Y = int(Y)-1 xx..

백준 14719) 빗물 (python)

https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net h,w =map(int,input().split()) arr = list(map(int, input().split())) res = 0 for i in range(1, w-1): tmp = min(max(arr[:i]), max(arr[i+1:])) if tmp > arr[i]: res += tmp - arr[i] print(res) 코드는 짧지만 생각해야할 것이 많은 문제 고이..

백준 2003) 수들의 합2 (python)

https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net n, m = map(int, input().split()) a = list(map(int, input().split())) sum = a[0] left = 0 right = 1 cnt = 0 while True: if sum < m: if right < n: sum += a[right] right += 1 else: break elif sum == m: c..

백준 22862) 가장 긴 짝수 연속한 부분 수열 (large)

https://www.acmicpc.net/problem/22862 22862번: 가장 긴 짝수 연속한 부분 수열 (large) 수열 $S$에서 최대 $K$번 원소를 삭제한 수열에서 짝수로 이루어져 있는 연속한 부분 수열 중 가장 긴 길이를 출력한다. www.acmicpc.net n,k =map(int,input().split()) S = list(map(int, input().split())) lt = 0 rt = 0 cnt, res = 0, 0 while rt k: if S[lt] %2 ==1 : cnt -=1 lt +=1 continue else: if S[rt] %2 ==1 : cnt +=1 rt +=1 res = max(res, rt -lt -cnt) print(res)..

백준 5525) IOIOI (python)

https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) m = int(input()) S = input().rstrip() i = 0 cnt = 0 answer = 0 while i < (m - 1): if S[i : i+3] == 'IOI': i += 2 cnt += 1 if cnt =..

백준 1495) 기타리스트 (python)

https://www.acmicpc.net/problem/1495 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net n,s,m = map(int,input().split()) v = list(map(int,input().split())) dp = [[0]*(m+1) for _ in range(n+1)] dp[0][s] = 1 for i in range(n): for j in range(m+1): if dp[i][j] == 1: n1 = v[i] + j n2 = j - v[i..

백준 19583) 싸이버 개강 총회 (python)

https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net import sys input = sys.stdin.readline S,E,Q = input().split() S = int(S[:2])*60 + int(S[3:]) E = int(E[:2])*60 + int(E[3:]) Q = int(Q[:2])*60+ int(Q[3:]) res = set() result = 0 while True: try: time, na..

[프로그래머스 lv2] 후보키 (python)

https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import combinations def solution(relations): answer = 0 n,m =len(relations), len(relations[0]) candidates = [] for i in range(1,m+1): candidates.extend(combinations([x for x in range(m)],i)) unique = [] for c..

백준 3190) 뱀 (python)

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net n = int(input()) k = int(input()) #사과개수 arr = [[0]*(n+1) for _ in range(n+1)] for _ in range(k): x,y = map(int, input().split()) arr[x][y] = 1 L = int(input()) info = [] for _ in range(L): X,C = map(str, input().split()) info.a..