백준 / 쉬운 최단거리 / 14940번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 쉬운 최단거리 / 14940번 (실버 1단계)문제 사이트: https://www.acmicpc.net/problem/14940 문제 설명 나의 풀이from collections import deque def bfs(tile, visit): q = deque() # 상하좌우로 움직여야함 move = [(0, 1), (0, -1), (1, 0), (-1, 0)] b = False for i in range(len(tile)): for j in range(len(tile[i])): # 2 찾으면 종료 시킬 반복문 if tile[i][j] == 2: q.append((i, j, 1)) tile[i][j] = 0 visit[i][j] = True b = True bre..
백준 / 전쟁 - 땅따먹기 / 1270번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 전쟁 - 땅따먹기 / 1270번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/1270 문제 설명 나의 풀이# 땅의 개수n = int(input())answer = []for _ in range(n): win = {} war = list(map(int, input().split())) # 길이를 구할 변수 formation = len(war) # 과반수를 구해야 하므로 짝수와 홀수의 경우를 나눈다. # ex) 7의 과반수는 4이므로 2로 나누고 1를 더해줌 if formation % 2 == 0: formation //= 2 else: formation ..
백준 / 램프 / 1034번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 램프 / 1034번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/1034 문제 설명 나의 풀이# 입력받기n, m = map(int, input().split())lst = [input().strip() for _ in range(n)]k = int(input())max_cnt = 0# 모든 행에 대해 반복for row in range(n): # 현재 행의 0의 개수 세기 zero_count = lst[row].count('0') # 이 행과 똑같은 값을 가진 행의 개수 세기 col_light_cnt = 0 # 0의 개수와 k의 짝수/홀수 조건을 확인 if zero_count ※ 알아야 할..
백준 / 나머지 합 / 10986번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 나머지 합 / 10986번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/10986 문제 설명 나의 풀이def solution(arr): answer = 0 # 구간 합을 넣어둘 배열 per = [arr[0]] if arr[0] % m == 0: answer += 1 for i in range(1, len(arr)): if arr[i] % m == 0: answer += 1 per.append(arr[i] + per[i - 1]) per.pop(0) for j in per: if j % m == 0: ..
백준 / 과일 탕후루 / 30804번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 과일 탕후루 / 30804번 (실버 2단계)문제 사이트: https://www.acmicpc.net/problem/30804 문제 설명 나의 풀이def two_pointer(fru, n): left = 0 right = len(fru) - 1 max_total = 0 count_break = False while left 2: left += 1 max_total = max(max_total, total) break total += 1 left_find += 1 ..
백준 / 치즈 / 2638번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 치즈 / 2638번 (골드 3단계)문제 사이트: https://www.acmicpc.net/problem/1225 문제 설명 나의 풀이from collections import dequedef bfs(chee): q = deque() q.append((0, 0)) time = 0 # 이동: 오른쪽 왼쪽 위 아래 move = [(0, 1), (0, -1), (1, 0), (-1, 0)] while True: # 반복 제어 count = True # 방문 탐색 visited = [[0] * m for _ in range(n)] visited[0][0] = 1 # (0,..
백준 / 문자열 / 1120번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 문자열 / 1120번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1120 문제 설명 나의 풀이def min_difference(A, B): len_a = len(A) len_b = len(B) min_diff = float('inf') # B에서 A를 삽입할 수 있는 모든 위치에 대해 계산 for i in range(len_b - len_a + 1): count = 0 for j in range(len_a): if A[j] != B[i + j]: count += 1 min_diff = min(min_diff,..
백준 / 고층 건물 / 1027번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 고층 건물 / 1027번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/1027 문제 설명 나의 풀이def bfs(start, count, build): # 시작 건물에서 볼 수 있는 건물의 수 bcount = 0 # 시작 건물의 높이 current_high = build[start] # 오른쪽 탐색 current_right_inclination = float('-inf') for i in range(start + 1, count): high = build[i] # 오른쪽의 건물과 기울기 계산 right_inclination = (high - cu..
백준 / 계단 오르기 / 2579번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 계단 오르기 / 2579번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/2579 문제 설명 나의 풀이n = int(input())stairs = []for _ in range(n): s = int(input()) stairs.append(s)cnt = 1answer = stairs[0]for i in range(1, len(stairs) - 2): if cnt == 2: cnt = 0 continue if stairs[i] > stairs[i + 1] and cnt 첫 풀이는 계단을 올라가면서 현재 계단과 다음 계단의 점수를 비교해 나가는 그리디 알고리즘을 사용해서 풀었다...
백준 / 가장 긴 바이토닉 부분 수열 / 11054번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 가장 긴 바이토닉 부분 수열 / 11054번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/11054 문제 설명 나의 풀이n = int(input())s = list(map(int, input().split()))# 각 인덱스까지의 가장 긴 증가하는 부분 수열의 길이를 저장increase_dp = [1] * nfor i in range(n): for j in range(i): if s[i] > s[j]: increase_dp[i] = max(increase_dp[i], increase_dp[j] + 1)# 각 인덱스부터의 가장 긴 감소하는 부분 수열의 길이를 저장decrease_dp ..
백준 / 동전 1 / 2293번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 동전 1 / 2293번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/2293 문제 설명 나의 풀이n, m = map(int, input().split())coins = [int(input()) * 1 for _ in range(n)]coins.sort()dp = [0] * (m + 1)dp[0] = 1for c in coins: for i in range(c, m + 1): dp[i] += dp[i - c]print(dp[m])코드는 간단하지만 DP를 이용하는 과정에서 점화식을 세우는 과정이 조금 어렵다.예시 입력을 봤을 때1-1-1-1-1-1-1-1-1-1 = 10(1번째)1-1-1-1-1-1-1-1..
백준 / 치즈 / 2636번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 치즈 / 2636번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/2636 문제 설명 나의 풀이from collections import dequedef bfs(ch): q = deque() # 모두 녹기 한 시간 전에 남아있는 치즈조각이 놓여 있는 칸의 개수 final_count = -1 # 시간 time = 0 # 상 하 좌 우로 움직여야함 move = [(0, 1), (0, -1), (1, 0), (-1, 0)] while True: # 매 초마다 녹아가는 치즈의 수를 구함 count_cheeze = 0 # 방문처리 visi..
김치바보
'코딩테스트(프로그래머스 & 백준)/백준-Python' 카테고리의 글 목록 (4 Page)