본문 바로가기

Dev/Algorithm73

[백준] #6236 용돈 관리 - 파이썬 문제현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 하였다. 현우는 통장에서 K원을 인출하며, 통장에서 뺀 돈으로 하루를 보낼 수 있으면 그대로 사용하고, 모자라게 되면 남은 금액은 통장에 집어넣고 다시 K원을 인출한다. 다만 현우는 M이라는 숫자를 좋아하기 때문에, 정확히 M번을 맞추기 위해서 남은 금액이 그날 사용할 금액보다 많더라도 남은 금액은 통장에 집어넣고 다시 K원을 인출할 수 있다. 현우는 돈을 아끼기 위해 인출 금액 K를 최소화하기로 하였다. 현우가 필요한 최소 금액 K를 계산하는 프로그램을 작성하시오.입력1번째 줄에는 N과 M이 공백으로 주어진다. .. 2025. 11. 12.
[백준] #1913 달팽이 - 파이썬 문제홀수인 자연수 N이 주어지면, 다음과 같이 1부터 N2까지의 자연수를 달팽이 모양으로 N×N의 표에 채울 수 있다.92381476525101112132492314238141522765162120191817N이 주어졌을 때, 이러한 표를 출력하는 프로그램을 작성하시오. 또한 N2 이하의 자연수가 하나 주어졌을 때, 그 좌표도 함께 출력하시오. 예를 들어 N=5인 경우 6의 좌표는 (4,3)이다.입력첫째 줄에 홀수인 자연수 N(3 ≤ N ≤ 999)이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다.출력N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두.. 2025. 11. 3.
[프로그래머스] 아이텝 줍기 - 파이썬 복기BFS로 풀어야하는 것은 쉽게 파악했다. 이 문제에서는 2가지만 챙겨가자.1.일반적인 2D 배열 (Top-Left 기준)arr[0][0] : 맨 위, 맨 왼쪽arr[y][x] : y가 증가하면 아래로 이동, x가 증가하면 오른쪽으로 이동이때 '위로' 가려면 y-1을 해야 합니다.2. 이 코드의 방식 (Bottom-Left 기준)이 코드는 2D 배열을 마치 수학의 xy 좌표평면처럼 쓰고 있습니다.graph[x][y] : x좌표, y좌표x가 증가하면 오른쪽으로 이동 (graph[1][1] -> graph[2][1])y가 증가하면 위로 이동 (graph[1][1] -> graph[1][2])-> 즉 2D 배열을 xy 좌표평면처럼 일관되게 세팅해서 풀면 훨씬 쉽다 문제가 되는 상황 (좌표 1배)블록 2개가 .. 2025. 11. 1.
[프로그래머스] 여행경로 - 파이썬 복기1. solution 함수 아래에 dfs 함수를 두고 재귀로 풀었다. 이렇게 하게 되면 visited를 따로 인자로 넣어주지 않아도 된다.그리고 tickets 변수를 활용하면서 ticket[0] == start로 다음 경로를 찾을 수 있도록 했다.2. dfs가 끝나면 그 경로로 모든 도시를 방문한거기 때문에 다른 경로를 찾기 위해 백트래킹을 해줘야 한다. 솔루션def solution(tickets): answer = [] visited = [False] * len(tickets) def dfs(start, path): # 모든 티켓을 한번씩 사용하고 모든 도시를 방문해야 하기때문에 path 길이는 tickets+1 if (len(path) == l.. 2025. 10. 23.
[코드트리] 코드트리 빵 - 파이썬 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/codetree-mon-bread/description 코딩테스트 기출 문제 설명: 코드트리 빵 | 코드트리코딩테스트 기출 문제 코드트리 빵의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.aifrom collections import deque# --- 헬퍼 함수 및 전역 변수 ---def is_range(r, c): """격자 범위 안인지 확인""" return 0 2025. 9. 22.
[코드트리] 미생물 연구 - 파이썬 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/microbial-research/description 코딩테스트 기출 문제 설명: 미생물 연구 | 코드트리코딩테스트 기출 문제 미생물 연구의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.aifrom collections import dequeN, Q = map(int, input().split())# arr: 메인 배양 용기(격자)arr = [[0] * N for _ in range(N)]# micro_ls: Q개 미생물의 초기 투입 정보 저장micro_ls = []for _ in range(Q): micro_ls.appe.. 2025. 9. 22.
[코드트리] 고대 문명 유적 탐사 - 파이썬 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/ancient-ruin-exploration/description 코딩테스트 기출 문제 설명: 고대 문명 유적 탐사 | 코드트리코딩테스트 기출 문제 고대 문명 유적 탐사의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.aifrom collections import dequedef is_range(r,c): return 0= 3 else []# 유물조각의 좌표를 찾기def search_relic(arr): visited = [[False]*5 for _ in range(5)] all_piece = [] # 유물조각이 .. 2025. 9. 20.
[코드트리] 왕실의 기사 대결 - 파이썬 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/royal-knight-duel/description 코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리코딩테스트 기출 문제 왕실의 기사 대결의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai from collections import deque# 방향: 상(0), 우(1), 하(2), 좌(3)dx = [-1, 0, 1, 0]dy = [0, 1, 0, -1]# 입력 처리L, N, Q = map(int, input().split())board = [list(map(int, input().split())) for _ in r.. 2025. 9. 12.
[코드트리] 메이즈 러너 - 파이썬 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/maze-runner/descriptionimport sys# sys.stdin = open("input.txt", 'r')def is_board(x, y): return 0 0: continue next_dist = cal_dist(nr, nc, exit[0], exit[1]) # 현재보다 출구와 가까워지는 경우에만 이동 if cur_dist > next_dist: # 우선순위가 가장 높은 움직임이므로 즉시 이동하고 함수 종료 people[key][0] = [nr, nc].. 2025. 9. 7.
[코드트리] 루돌프의 반란 https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/rudolph-rebellion/description 코딩테스트 기출 문제 설명: 루돌프의 반란 | 코드트리코딩테스트 기출 문제 루돌프의 반란의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai dxy = [ (-1,0),(0,1),(1,0),(0,-1), (-1,-1),(-1,1),(1,-1),(1,1)]def in_range(r, c): return 0 fainted_turn 이면 정상) self.is_out = False # 격자 밖 탈락? self.score = 0 .. 2025. 9. 6.