Programmers / 2단계 / 행렬 테두리 회전하기 / python
·
코딩테스트/programmers (python)
출처: https://school.programmers.co.kr/learn/courses/30/lessons/77485 코드def solution(rows, columns, queries): matrix = [] tmp = [] for i in range(1, (rows * columns + 1)): tmp.append(i) if (len(tmp) == columns): matrix.append(tmp) tmp = [] rotation(matrix, queries) return answer answer = []def rotation(matrix, queries): global answer ..
Programmers / 2단계 / 수식 최대 / python / 2020 카카오 인턴십
·
코딩테스트/programmers (python)
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/67257  코드 from itertools import permutationsdef operation(num1, num2, op): if op == '+': return str(int(num1) + int(num2)) if op == '-': return str(int(num1) - int(num2)) if op == '*': return str(int(num1) * int(num2)) def calculate(expression, op): array = [] tmp = "" for i in expression: ..
Programmers / 3단계 / 가장 먼 노드 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/49189# 코드from collections import dequedef solution(n, edge): graph = [[] for _ in range(n+1)] visited = [0] * (n+1) for e in edge: x, y = e[0], e[1] graph[x].append(y) graph[y].append(x) q = deque() q.append(1) visited[1] = 1 while q: p = q.popleft() for i in graph[p]: ..
Programmers / 3단계 / 무인도 여행 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 무인도 여행 | 프로그래머스 스쿨 (programmers.co.kr)  코드from collections import dequedef solution(maps): N, M = len(maps), len(maps[0]) visited = [[0] * M for _ in range(N)] queue = deque() answer = [] for i in range(N): for j in range(M): if maps[i][j] =='X' or visited[i][j]: continue queue.append((i,j)) visited[i][..
Programmers / 3단계 / 섬 연결하기 / python / Greedy / Kruskal 알고리즘
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42861  코드def solution(n, costs): answer = 0 costs.sort(key = lambda x: x[2]) s = set([costs[0][0]]) while len(s) != n: for v in costs: if v[0] in s and v[1] in s: continue if v[0] in s or v[1] in s: s.update([v[0], v[1]]) answer += v[2] ..
Programmers / 3단계 / 징검다리 건너기 / python / 2019 카카오 개발자 겨울 인턴십
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/64062  코드def solution(stones, k): s = 1 e = max(stones) mid = (s + e) // 2 while s = k: e = mid -1 break else: cnt = 0 else: s = mid + 1 return s - 순차탐색으로는 효율성을 만족하기 어려우므로 이진탐색으로 답을 구해야 한다.- s는 1, e는 디딤돌의 최댓값, mid는 (s + e) //2로 설정하고, 디딤돌을 ..
Programmers / 2단계 / 방금그곡 / python / 2018 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/17683 코드def solution(m, musicinfos): m = m.replace('C#','c').replace('D#','d').replace('F#','f').replace('G#','g').replace('A#','a') answer = [] for music in musicinfos: s = int(music.split(',')[0].split(':')[0]) * 60 + int(music.split(',')[0].split(':')[1]) e = int(music.split(',')[1].split(':')[0]) * 60 + int(musi..
Programmers / 3단계 / 보석 쇼핑 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/67258  코드def solution(gems): size = len(set(gems)) dic = {gems[0]:1} temp = [0, len(gems) - 1] start , end = 0, 0 while(start  모든 종류의 보석을 1개 이상 포함하는 가장 짧은 구간을 구해야 하는 문제이다. 시간 복잡도를 고려해 슬라이싱 대신 투포인터와 딕셔너리를 이용하여 풀어야 한다. 처음에 포인터 start와 end를 모두 1번 진열대에 위치시키고, 보석의 종류가 모두 채워질 때까지 end를 증가시키면서 딕셔너리의 키와 값을 갱신한다. 종류가 모두 채워지면 가장 짧은 구간인..