백준 / 가장 긴 증가하는 부분 수열 4 / 14002번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 가장 긴 증가하는 부분 수열 4 / 14002번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/14002 문제 설명 나의 풀이n = int(input())data = list(map(int, input().split()))dp = [1] * (n + 1)for i in range(len(data)): for j in range(i): if data[j] ※ 알아야 할 것https://www.acmicpc.net/problem/12015 이 문제랑 다르다.이 풀이는 1번째 코드에서 수열이 증가하면 증가하는 길이만큼 출력한다.그리고 그 최대 증가하는 수들은 x 값을 가지고 있을 테니깐 뒤에서부터 x 값과 같..
백준 / 회의실 배정 / 1931번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 회의실 배정 / 1931번 (실버 1단계)문제 사이트: https://www.acmicpc.net/problem/1931 문제 설명 나의 풀이def solution(m): count = 0 # end는 현재 회의 끝나는 시간 end = -1 # s는 다음 회의 시작, e는 다음 회의 끝 for s, e in m: if end 이 문제의 핵심은 회의 끝나는 시간을 오름차순(이게 우선적으로 와야함), 회의 시작하는 시간을 오름차순을 통해서 가장 많이 사용할 수 있는 회의 시간을 찾는 것이 중요하다. 하지만 위 풀이는 정답과 비슷하지만 반례가 발생한다. 회의 끝나는 시간을 오름차순을 했지만 회의 시작하는 시간을 오름차순을 하지..
백준 / 그룹 단어 체커 / 1316번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 그룹 단어 체커 / 1316번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/1316 문제 설명 나의 풀이def solution(s): stack = [] alpha = {chr(i + 96) : 0 for i in range(1, 27)} for word in s: if not stack: stack.append(word) continue if stack[-1] == word: continue elif stack[-1] != word: stack.append(word) for ..
백준 / 최솟값 찾기 / 11003번 / Python(PyPy3 제출)
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 최솟값 찾기 / 11003번 (플래티넘 5단계)문제 사이트: https://www.acmicpc.net/problem/11003 문제 설명 나의 풀이import heapqfrom collections import dequedef solution(lis, l): # 결과 result = [] # L를 계산할 deque() q = deque() for number in lis: q.append(number) if len(q) == l + 1: q.popleft() # 최소 값을 구할 힙 heap = list(q) heapq.heapif..
백준 / 토마토 / 7576번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 토마토 / 7576번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/7576 문제 설명 나의 풀이from collections import dequedef solution(B): m = len(B[0]) n = len(B) move = [(0, 1), (0, -1), (1, 0), (-1, 0)] queue = deque() # 먼저 익은 토마토를 모두 큐에 넣어준다. for y in range(n): for x in range(m): if B[y][x] == 1: queue.append((y, x, 0)) # (y, x, 시간)..
백준 / 0과 1 / 8111번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 0과 1 / 8111번 (플래티넘 5단계)문제 사이트: https://www.acmicpc.net/problem/8111 문제 설명 나의 풀이from collections import dequedef find_gusa_number(N): # 큐 초기화: ("1", 1 % N)로 시작 queue = deque([("1", 1 % N)]) visited = set([1 % N]) while queue: current_number, remainder = queue.popleft() # 만약 나머지가 0이라면 그 수가 답이다. if remainder == 0: retu..
백준 / 1, 2, 3 더하기 / 9095번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 1, 2, 3 더하기 / 9095번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/9095 문제 설명 나의 풀이def solution(N): dp = [0] * (N + 1) # 초기값 설정, N의 크기에 따라 다르게 설정 dp[0] = 1 if N >= 1: dp[1] = 1 if N >= 2: dp[2] = 2 if N >= 3: dp[3] = 4 # 점화식에 따라 dp 배열 채우기 for i in range(4, N + 1): dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3] return..
백준 / 1로 만들기 / 1463번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 1로 만들기 / 1463번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/1463 문제 설명 나의 풀이# 다이나믹 프로그래밍def solution(N): dp = [0] * (N + 1) # 초기 값으로 필수다 if N >= 2: dp[2] = 1 if N >= 3: dp[3] = 1 # 나눴을 때 점화식에 존재하는 값을 가져와서 더해주면 된다. for i in range(4, N + 1): if i % 3 != 0 and i % 2 == 0: check = min(dp[i - 1], dp[i // 2]) dp[i..
백준 / 가운데를 말해요 / 1655번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 가운데를 말해요 / 1655번 (골드 2단계)문제 사이트: https://www.acmicpc.net/problem/1655 문제 설명 나의 풀이N = int(input())result = []answer = []for _ in range(N): number = int(input()) result.append(number) result.sort() r = len(result) # result 길이가 2보다 작을 때 (짝수) if r 테스트는 통과했지만 시간초과가 발생한 문제다import heapqimport sysinput = sys.stdin.readlineN = int(input())left_heap = [] # 최대 힙 ..
백준 / 줄 세우기 / 2252번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 줄 세우기 / 2252번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/2252 문제 설명 나의 풀이N, M = map(int, input().split())line = []for _ in range(M): A, B = map(int, input().split()) line.append([A, B])result = []result.append(line[0][0])result.append(line[0][1])del line[0]for a, b in line: idx = 0 for i in result: if b == i: result.insert(idx, a) ..
백준 / 등수 구하기 / 1205번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 등수 구하기 / 1205번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1205 문제 설명 나의 풀이# N, 태수의 새로운 점수 : score, PN, score, P = map(int, input().split())# 랭크if N == 0: rank = [score]else: rank = [score] + list(map(int, input().split())) rank.sort(reverse = True)# 결과값answer = 1dic = {}for i in rank: if not dic.get(i): dic[i] = 1 else: dic[i] += 1for r,..
백준 / 동전 2 / 2294번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 동전 2 / 2294번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/2294 문제 설명 나의 풀이n, k = map(int, input().split())coin = []for _ in range(n): co = int(input()) coin.append(co)coin.sort(reverse = True)def solution(k, coin): count = 100000 for i in range(len(coin)): current = 0 current_money = k for j in range(i, len(coin)): if coin[j..
김치바보
'코딩테스트(프로그래머스 & 백준)/백준-Python' 카테고리의 글 목록 (6 Page)