목록카카오 코딩테스트 (7)
공부하는 스누피
programmers.co.kr/learn/courses/30/lessons/64062#qna 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr (효율성 통과 x) 생각과정 - 길이가 k인 창문을 움직이는 방식으로 슬라이딩 윈도우를 구현했다. - 처음 위치의 창문 영역의 최댓값, 최솟값을 구한다. - 이동 전 첫번째 값이 최댓값이면 창문 영역의 최댓값을 새로 구한다. - 아니라면, 저장된 최댓값과 영역에 새로 들어온 값을 비교 후 큰 값을 최댓값으로 한다. - 창문 영역의 최댓값과 처음 연산한 최댓값을 비교 후 작은 값을 저장하고, 다음부터는 저장된 값과 비교한다. 구현 import sys def solution(stones..
https://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 생각과정 - 딕셔너리를 만들어 새로운 문자 패턴을 저장한다. - 주어진 문자열을 순회하면서 현재 입력된 문자가 딕셔너리에 있는지 확인하고, 없으면 추가한다. - 현재 입력된 문자의 다음 문자가 딕셔너리에 있는지 확인하고, 없으면 추가한다. 이때 현재 입력 문자에 다음 문자를 더한 패턴도 딕셔너리에 추가하고 다음 반복으로 바로 넘어간다. ex) 현재:A 다음:B일때, B가 딕셔너리에 없..
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 생각 과정 - 균형인지 테스트는 (의 개수와 )개수가 같은지 검사하는 메소드 check로 수행한다. - 올바른 괄호는 문자열의 첫 문자는 열린 괄호여야만 하고, 마지막 문자는 닫힌 괄호여야 한다. - 괄호 변환 알고리즘이 나와 있으니 그대로 따라 만들면 된다. - 재귀 함수는 받은 문자열을 문자열 u, v로 나누는데, u는 균형있는 괄호이고 더이상 나눠지지 않아..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 생각 과정 - 길이가 n인 문자열을 1개, 2개,,,, n개씩 끊어 문자열 리스트에 넣는다. - 다 넣은 후 리스트를 순회하면서 같은 문자열이 반복되는지 검사한다. - 반복이 유지되면 count를 늘리고, 종료되면 count한 값과 이때까지 중복이었던 문자열을 StringBuffer에 붙인다. - 반복하지 않는 경우는 count없이 StringBuffer에..
https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 생각과정 - 주어진 문자열에서 한 문자씩 읽어서 숫자인지 아닌지 확인한다. - 숫자를 char 단위로 받으므로 받을 때 버퍼에 append한다. - S, D, T 문자를 받을 경우 숫자 입력이 종료되었으니 버퍼를 비우고 점수를 배열에 저장한다. - 저장 위치는 index로, 점수가 새로 저장될 때마다 증가한다. - *, # 문자를 받을 경우 index-1위치에 해당하는 점수를 갱신한다. - * 문자는 이전 점수에게도 영향을 미치니 index가 0이 아닐 때만 index-2 위치를 갱신해준다. 구현 class Solution { pub..
https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 생각과정 - 순서 1) 2*2 형태의 같은 블록이 있는지 확인 -> 없으면 종료 2) 1) 조건에 맞는 블록 터뜨리기(지우기) 3) 블록 밑에 빈공간 없도록 떨어뜨리기 -> 1)로 이동 - 2*2 형태가 여러개 겹쳐져도 모두 터뜨려야 함. => 1) 조건에 해당하는 블록에 지울 거라고 표시하기 (다른 블록과도 비교해야 하니까 문자를 바꾸면..
https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 생각과정 - 문제에서는 집합으로 자카드 유사도를 설명했지만, 원소의 중복을 허용하기 때문에 Set의 subclass를 사용할 수 없다. - 자카드 유사도는 다음과 같이 나타낼 수 있다. J(A, B) = 교집합 원소 수/합집합 원소 수 (A, B가 공집합일 경우 1) - HashMap을 사용하면 문자 클러스터를 key로, 원소의 개수를 ..