✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/이것이 코딩 테스트다

✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/이것이 코딩 테스트다

    [TC0402] [구현] 시각

    ✅ 이것이 코딩 테스트다 - 시각 n = int(input()) ans = 0 for hour in range(n+1): for min in range(60): for sec in range(60): if "3" in str(hour) + str(min) + str(sec): ans += 1 print(ans) ◾ Implementation ◾ 00시 00분 00초 ~ N시 59분 59초 중에서 ( 0

    [TC0302] [그리디] 큰 수의 법칙

    ✅ 이것이 코딩 테스트다 - 큰 수의 법칙 # N M K 입력 N, M, K = map(int, input().split()) # 수열 입력 arr = list(map(int, input().split())) # 제일 큰 수, 그 다음 수 구하기 arr_sorted = sorted(arr) n1 = arr_sorted[-1] # first n2 = arr_sorted[-2] # second 라고 변수명 지었어도 좋았을듯 # 카운트 cnt = M // (K + 1) remain = M % (K + 1) if (M % 2 == 0): # 짝수라면 ans = ((n1 * K) + n2) * cnt print(ans) else: # 홀수라면 ans = ((n1 * K) + n2) * cnt + (n1 * rem..

    [TC0301] [그리디] 거스름돈

    ✅ 이것이 코딩 테스트다 - 거스름돈 N = int(input()) # N : 손님에게 거슬러줘야할 돈 print(N) coins = [500, 100, 50, 10] # 내가 가지고 있는 동전 배열 count = 0 # 최소 동전의 개수 for coin in coins: count += N // coin N %= coin print(count) ◾ Greedy ◾ 내가 가지고 있는 동전 배열을 우선 선언 ◾ 해당 배열을 루프한다. ◾ 해당 동전으로 나눈 나머지 값들을 더하고 return 한다.

    [TC0401] [구현] 상하좌우

    ✅ 이것이 코딩 테스트다 - 상하좌우 n = int(input()) # 사각형의 크기 maps = [i for i in map(str, input().split())] # 여행자 계획 loc = { 'L': [0, -1], 'R': [0, 1], 'U': [-1, 0], 'D': [1, 0] } x, y = 1, 1 # 시작 좌표 for j in maps: if j == 'L': if y == 1: y += 0 else: y += loc['L'][1] x += loc['L'][0] elif j == 'R': if y == n: y += 0 else: y += loc['R'][1] x += loc['R'][0] elif j == 'U': if x == 1: x += 0 else: x += loc['U'][..

    [TC0304] [그리디] 1이 될 때까지

    ✅ 이것이 코딩 테스트다 - 1이 될때까지 n, k = map(int, input().split()) cnt = 0 def go(n, k, cnt): if n == 1: return cnt if n % k == 0: n = n // k cnt += 1 return go(n, k, cnt) n = n - 1 cnt += 1 return go(n, k, cnt) print(n, k) cnt = go(n, k, cnt) print("ans:", cnt) ◾ Greedy ◾ 이 문제는 1이 될 때까지 2가지의 과정 중에서 한가지의 과정을 반복하는 것이다. ◾ 많이 풀어본 문제지만 빨리 풀지를 못한다 😨 ◾ 최종적으로는 최소 횟수를 return 해야한다. ◾ 빼기 보다는 나눗셈을 하는게 최소횟수에 이득이 되므로 ..

    [TC0303] [그리디] 숫자 카드 게임

    ✅ 이것이 코딩 테스트다 - 숫자 카드 게임 n, m = map(int, input().split()) cards = [] for i in range(n): cards.append(list(map(int, input().split()))) min_ = min(cards[0]) for j in range(n): tmp = min(cards[j]) if tmp > min_: min_ = tmp ans = min_ print(n, m) print(cards) print("해답:", ans) ◾ Greedy ◾ 카드 행들 중에서 하나를 선택하면 ◾ 해당 행의 카드 중에서 가장 작은 숫자를 골라야한다. ◾ 하지만, 최종적으로는 제일 큰 카드의 숫자를 return 하는 문제 ◾ 행마다 제일 작은 값을 뽑아내고 그 ..