목록파이썬 (40)
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/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/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..
programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] #을 어떻게 처리하느냐가 이 문제의 핵심이다. 처음엔 #이 뒤에올때, 안 올때를 나눠서 풀까.. 생각했지만, 너무 번거로울 것 같아서 고민하다가 소문자로 변환해서 풀면 쉬울 것 같아서 모조리 소문자로 바꿨다. 문제를 처음에 제목 길이가 긴 순서를 우선순위로 놓고 풀어라 라고 잘못 읽어서 이상한 오류다.. 생각하고 있었다(하^^)..
programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr [ 알고리즘 ] 구현 [문제 접근] 굉장히 쉬운 문제라고 생각되는 문제이다. 한 10분..?만에 제출한 것 같다 dictionary에 해당 유저네임에 들어오는 닉네임을 업데이트해주고 마지막에 형식에 맞게 출력해주면 된다 [코드] def solution(record): result = [] dic={} for i in record: List=i.split(' ') if List..