본문 바로가기

Coding test

(123)
99클럽 코테 스터디 42일차 TIL, 프로그래머스 / 코딩테스트공부 🔑 오늘의 학습 키워드 : DP🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/118668 def solution(alp, cop, problems): max_alp, max_cop = 0,0 for p in problems: max_alp = max(max_alp,p[0]) max_cop = max(max_cop,p[1]) # 현재 alp와 cop가 목표보다 높을 경우를 대비 alp = min(alp, max_alp) cop = min(cop, max_cop) dp = [[1e9] * (max_cop+1) for _ in range (max_alp+1)]..
99클럽 코테 스터디 41일차 TIL, 프로그래머스 / 도둑질 🔑 오늘의 학습 키워드 DP🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42897 def solution(money): answer = 0 dp1 = [0] * len(money) # 첫 집을 털었을 때 dp2 = [0] * len(money) # 첫 집을 안 털고 두 번째 집을 털었을 때 dp1[0] = money[0] dp1[1] = dp1[0] dp2[1] = money[1] for i in range(2, len(money) - 1): dp1[i] = max(dp1[i - 1], dp1[i - 2] + money[i]) dp2[i] = max(dp2[i - 1]..
99클럽 코테 스터디 40일차 TIL, 프로그래머스 / 등굣길 🔑 오늘의 학습 키워드 DP🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42898# def solution(m, n, puddles): grid = [[0] * (m+1) for _ in range (n+1)] for x,y in puddles: grid[y][x] = -1 for i in range (1,n+1): for j in range (1,m+1): if i == 1 and j == 1: grid[1][1] = 1 elif grid[i][j] == -1: grid[i]..
99클럽 코테 스터디 39일차 TIL, 프로그래머스 / 로또의 최고 순위와 최저 순위 🔑 오늘의 학습 키워드 : 그리디🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/77484 def solution(lottos, win_nums): cnt,zero = 0,0 for lotto in lottos: if lotto in set(win_nums) : cnt += 1 elif lotto == 0 : zero += 1 return [6 if -cnt-zero == 0 else 7 - cnt-zero,6 if cnt == 0 else 7-cnt] 🗒️ 공부한 내용 본인의 언어로 정리하기🤔 문제를 보고 든 생각쉽다⏰ 예상 시간 복잡도 O(N)제한 사항lottos는 길이 6인 정수 배열..
99클럽 코테 스터디 38일차 TIL, 프로그래머스 / 혼자 놀기의 달인 🔑 오늘의 학습 키워드🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/131130 def solution(cards): opened = [False] * len(cards) box_group = [] def open_box(cards, idx): opened[idx] = True tmp = [idx] while True: next_open = cards[idx] - 1 if opened[next_open]: break opened[next_open] = True ..
99클럽 코테 스터디 37일차 TIL, 백준 / 2048 (Easy) / 12100 🔑 오늘의 학습 키워드 : 구현, dfs🔗 문제링크 https://www.acmicpc.net/problem/12100 import sysfrom copy import deepcopyinput = sys.stdin.readlineN = int(input())board = []for _ in range (N): board.append(list(map(int,input().split()))) def up(board): for j in range(N): pointer = 0 for i in range(1, N): if board[i][j]: tmp = board[i][j] boar..
99클럽 코테 스터디 36일차 TIL, 백준 / 도미노 / 1552 🔑 오늘의 학습 키워드 dfs🔗 문제링크 https://www.acmicpc.net/problem/1552 import itertools# 알파벳을 숫자로 변환하는 함수def alphabet_to_minus_num(c): if c.isdigit(): return int(c) else: return -1 * (ord(c) - ord('A') + 1)# 점수를 계산하는 함수def calculate_domino_cross(cycles, domino): score = 1 for cycle in cycles: cycle_score = 1 for (i, j) in cycle: cycle_score *= domino[i][..
99클럽 코테 스터디 35일차 TIL, 프로그래머스 / 퍼즐 조각 채우기 🔑 오늘의 학습 키워드 BFS, 구현🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/84021 from collections import dequedef solution(game_board, table): answer = 0 n = len(game_board) directions = [(1, 0), (0, 1), (-1, 0), (0, -1)] def in_range(x, y): return 0  🗒️ 공부한 내용 본인의 언어로 정리하기🤔 문제를 보고 든 생각문제가 요구하는 사항이 많아서 함수단위로 우선 작성을 한다음 코드 세부 구현을 해야겠다고 생각했다.1. BFS로 구멍이랑 블록을 구분하는 함..