[프로그래머스] 완전탐색 - 카펫
나의 답 def check(brown, yellow,x,y): b = x*y-((x-2)*(y-2)) y = (x-2)*(y-2) if brown == b and yellow == y: return 1 else: return 0 def solution(brown, yellow): cnt = brown+yellow arr = [] for i in range(3,cnt+1): # 약수 구하기 if cnt%i==0: arr.append(i) for value in arr: # 약수 조합 활용 x = value y = int(cnt/value) if check(brown, yellow,x,y): # 가로, 세로 값에 따라서 brown, yellow 충족 확인 return [x,y] if x>y else [y, ..
2024. 3. 18.
[이것이 코딩테스트다] Chapter 2. 구현
코딩테스트에서 구현이란 '머리속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다. 예제 4-1 상하좌우 첫째 값 : 공간의 크기를 나타내는 N 둘째 값 : 여행가 A가 이동할 계획서 내용 입력 예시 5 R R R U D D 출력 예시 3 4 답안 예시 n = int(input()) x, y = 1, 1 plans = input().split() # L, R, U, D에 따른 이동 방향 dx = [0,0,-1,1] dy = [-1,1,0,0] move_types = ['L','R','U','D'] # 이동 계획을 하나씩 확인 for plan in plans: # 이동 후 좌표 구하기 for i in range(len(move_types)): if plan == move_types[i]: nx = x + dx..
2024. 3. 16.
[이것이 코딩테스트다] Chapter 02. 그리디
실전문제 3. 숫자 카드 게임 숫자 카드 중에서 가장 높은숫자가 쓰인 카드 한 장을 뽑는 게임. but. 게임 룰 1. 먼저 뽑고자 하는 카드가 포함되어 있는 행 선택 2. 각 행 중에 가장 작은 수만을 뽑을 수 있음 Sol 행별로, 가장 작은 숫자를 알아냄 작은 숫자들 중에 가장 큰 수를 뽑아내면 됨 소스코드 n = 3 # 행의 크기 m = 3 # 열의 크기 A = [[3,1,2],[4,1,4],[2,2,2]] # 리스트 A result = 0 # 한 줄씩 확인 for i in range(n): data = A[i] # 현재 줄에서 가장 작은 수 찾기 min_value = min(data) # 가장 작은 수 들 중에서 가장 큰 수 찾기 result = max(result, min_value) print..
2024. 3. 8.