목록전체 글 (231)
DevKim
programmers.co.kr/learn/courses/30/lessons/12905 코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 언뜻보면 완전 탐색으로 구현할 수도 있는 문제지만, 그렇게 구현하면 엄청나게 복잡한 코드가 탄생할 것 이다. 표가 0,1로만 이루어져있다는 점과, 정사각형이라는 점을 이용하여 머리를 굴려야했던 문제이다 위,아래,왼쪽 대각선 중에 가장 최솟값을 자신에게 더해 나간다. 그렇게 되면 2로 이루어진 3개는 겹쳐서 2*2의 정사각형이 존재한다는 의미이므로 해당 표의 숫자가 1 이면 1+2로 한 변의 길이가 3인 정사각형을 보장할 수 있을 것..
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 [ 알고리즘 ] 구현 [문제 접근] 최소성을 어떻게 접근해야할지 몰라서 고민하다가 다른 분의 블로그를 참고해서 풀이한 문제 조합과 set을 이용하여 구하는 문제라고는 처음에도 생각해서 풀었는데, set의 교집합을 이용하여 구한다는 생각까지는 못했던 것 같..
programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 11진수 이상인 경우 10,11,12... -> A,B,C... 로 바꿔줘야하므로 이 경우를 기준으로 나눠주고, 튜브의 순서로 슬라이싱해줌 [코드] def solution(n, t, m, p): answer = '' result='0' for i in range(100000): s='' #n 진법 구하기 while i!=0:..
programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 이 문제는 재귀함수와, 문제를 잘 이해하느냐가 관건인 문제인 것 같다. 올바른 괄호 문자열인지 아닌지를 판별하여 올바른 문자열일때와 올바른 문자열이 아닐 때로 나누어준다 [코드] # u,v로 분리 # u 가 올바른 인지 아닌지 from collections import deque def right(u): # 올바른 인지 아닌지 que=dequ..
programmers.co.kr/learn/courses/30/lessons/12913# 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr [ 알고리즘 ] DP [문제 접근] 처음엔 매번 최대값을 선택하여 더하는 간단한 문제인줄 알았는데, 그게 아니었다. 다른 분의 풀이를 참고하여 풀이하였다. 전형적인 DP 문제로, 매행의 최대값을 더해준다. |1|2|3|5| |5|6|7|8| --> 1행에서 칸이 겹치지 않는 것을 고려한 것 중에 최댓값을 더해준다 |4|3|2|1| --> 위에서 합쳐진 것..
programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 시작 좌표와 끝 좌표가 visited 배열에 존재한다면 이미 방문한 길 이라고 생각하고 구현하였음 여기서 주의해야할 점은 되돌아 가는 경우도 고려해야한다는 점이다. 예를들어 (0,0)->(5,5) 로 가는 경로를 (0,0,5,5) 이런 형태로 visited 배열에 저장해주었는데 이렇게 되면 (5,5)->(0,0)으로 가는 경로를 인식을 못해서 뒤집어서 (5,5,0,0) 도 같이 저장해주었다. 쌩으로 구현한거라 다른 더 좋은 방법이 존재할 것 같기도.. [코드] from collections import deque def ..
programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 문자열 통째로 들어오는 s를 어떻게 처리해주느냐가 관건인 문제 { , } 를 기준으로 split 해주는 방법과 , { 를 기준으로 split 해준 후 파이썬 정규식을 이용하여 문자열을 처리하는 방법이있다. 요즘 정규식 re를 조금씩 공부하는 중인데 이 문제는 간단한 문자열 처리였지만, 복잡..
programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 기존의 알파벳으로 사전을 생성시켜준다. 그 후에 문자열을 하나씩 돌면서 사전에 존재하는 문자열까지 체크를 해주고, 존재하는 문자열+1까지의 문자열을 사전에 새로 넣어준다. 마지막 문자열을 처리하는 과정에서 index에 오류가 있어서 생각보다 오래걸렸던 문제였음 [코드] def solution(msg): answer = [] dic=[0] for i in range..