목록알고리즘 PS (108)
DevKim
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 [ 알고리즘 ] 구현 [문제 접근] 아이디어가 필요한 문제이다. 2*2 형태로 [0의 개수,1의 개수를 구해준 후] 계속해서 반씩 더하며 줄여나가는 형태이다. 이때 [4,0] 과 같이 ( ..
programmers.co.kr/learn/courses/30/lessons/72412
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 ..