[프로그래머스] 쿼드 압축 후 개수 세기 (Python)
https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr dp유형의 문제 같다 queue를 이용해서 하향식으로 풀었다. 나의 풀이 from collections import deque def check_all_number(x,y,l..
2021. 11. 4.
[프로그래머스] n^2 배열 자르기 (Python)
https://programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr left와 right를 나열해서 쓰다 보면 left 값과 right 값으로 위치를 찾을 수 있다. 이를 통해 풀이하면 된다. 나의 풀이 def solution(n, left, right): answer = [] for i in range(left,right+1): answer.append(max(i//n..
2021. 11. 4.
[프로그래머스] 모음사전 (Python)
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 사전 규칙에 따라 알고리즘으로 구현하여 풀었다. 풀기 전에 itertools의 product를 떠올리긴 했는데 아직 익숙하지 않아서 그 방식으론 풀지 못했다. 나의 풀이 def change(vowel): next = {'A':'E','E':'I','I':'O','O':'U'} last_word = vowel[-1] ..
2021. 11. 3.
[프로그래머스] 전력망을 둘로 나누기 (Python)
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 전선을 하나씩 끊어 보며 bfs로 풀었다. from collections import deque def solution(n,wires): answer = 101 for i in range(len(wires)): wire = wires[:i] + wires[i+1:] graph = [[] for _ in range(n+1)] visited = [False for _..
2021. 11. 3.
[프로그래머스] 영어 끝말잇기 (Python)
https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 스택을 통해 구현했다. 나의 풀이 def solution(n, words): stac..
2021. 11. 2.
[프로그래머스] 삼각 달팽이 (Python)
https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 규칙을 찾아서 구현하면 된다. 항상 아래 , 오른쪽, 왼쪽 위 방향으로 움직인다. 나의 풀이 def solution(n): a = [['']*n for _ in range(n)] check = 0 now = [-1,0] num = 1 answer = [] for i in range(n,0,-1): x, y = now if check ==0: # down now = [x..
2021. 11. 2.
[프로그래머스] 후보키 (Python)
https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 꽤나 애를 먹었던 문제였다. 내가 풀었던 알고리즘은 1. 속성의 개수를 카운트하고 속성을 조합 2. 각 속성으로 유일성을 만족하는지 확인 3. 현재 조합한 속성이 기존에 조합했던 속성과 겹치는 것이 있는지 다시 조합 후 확인(최소성 만족하는..
2021. 11. 1.
[프로그래머스] 예상 대진표(Python)
https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 대진표 조건에 따라 구현하면 된다. 두 명이 같은 라운드에 있는 경우는 a-b의 절댓값이 1이고 둘을 더한 값에 4를 나눴을 때 나머지가 3이면 성립한다. Ex: (1,2) , (3,4) , (5,6) -> 모두 3+4n의 규칙을 가진다. 다음 라운드의 번호를 구하려면 홀수일 경우 +1 후 2로 나누고 짝수일 경우 그냥 2로 나눠준다 나..
2021. 10. 31.