본문 바로가기

알고리즘/카카오 EASY

(29)
다시 풀어야 할 문제 모음 카카오 Level 1, Level 2 문제들을 다 풀었고 (현재는 2022.08.05 (금)) , 다시 풀어야겠다고 생각했던 문제들을 엄선하였다. Level 1 신고 결과 받기 실패율 Level 2 양궁대회 k진수에서 소수 개수 구하기 순위 검색 문자열 압축 후보 키 괄호 변환 캐시 압축 총 27개의 문제 중 10개를 선정했다. 레벨만 보면 쉬울 것 같은데, 까 보면 결코 쉽지 않다. 이 문제들을 복습해서 '내 것'으로 만들 것이다. 반드시!
카카오 기출 level1, level2 다 풀고 난 후 든 생각 (~2022년) 혼자서 진행한 프로젝트인 '카카오 기출 level 1, level 2 다 풀기'가 드디어 끝이 났다. 처음 시작했을 때는 문제 개수가 너무 많은 것처럼 느껴져서, 그리고 무려 카카오 기출이라 압박이 조금 있었다. 그래도 레벨 1과 레벨 2여서 나름 괜찮았던 것 같기도 하다. 사실 레벨은 낮았지만 어려운 문제들도 꽤 있었다. 낮은 레벨임에도 가뿐히 풀지 못하는 나 자신을 보면서 좌절도 했지만, "이번에 못하고, 시험 칠 때는 잘하면 되지"라는 생각으로 부족한 부분을 채워나갔다. 이렇게 문제들을 다 풀고 나니, 파이썬으로 알고리즘 푸는 실력이 조금 는 것 같고 자신감도 생긴 것 같다. 앞으로 카카오 레벨3부터 풀어나갈 텐데, 좌절하지 않고 끝까지 문제들을 풀어나갔으면 좋겠다. 모든 코테에서 미끄러지지 않는 ..
양궁대회 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 백트래킹을 사용해서 문제를 풀었다. 함수는 두 개 만들었는데, 첫 번째 함수는 어피치와 라이언의 점수 배열을 보고 점수가 몇 점인지 구하는 함수이고, 두 번째 함수는 dfs를 사용한 백트래킹 함수이다. idx를 0부터 시작해서 하나씩 증가시키면서 재귀 함수가 돌아가도록 설계하였다. idx가 11일 때, 즉 라이언의 배열에 숫자를 모두 채웠을 때 어피치와 라이언의 점수를 cal 함수를..
k진수에서 소수 개수 구하기 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92335#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 n을 k진수로 변환한 다음 '0'을 기준으로 잘라주었다. '0'을 자른 후에 사이사이 ''이 섞여있으므로 ''을 제거해주었다. 소수인지 판별하는 함수를 구하였다. 입력 숫자의 (제곱근+1)만큼 for문을 돌려서 계산하면 된다. 소수인지 판별하는 함수로 정답을 구하면 된다. import math def solution(n, k): answer = 0 num = '' while ..
주차 요금 계산 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 구현에 사용될 fees와 records의 원소들을 정리해주었다. 특히 records의 원소들은 리스트로 초기화한 defaultdict로 만든 dic에 넣어주었다. '차 번호'를 key로 하고, '시각'을 value로 하였다. 그 후 dic를 돌면서 한 차씩 몇 분 동안 주차되어있었는지 계산한다. '23:59'에 출차한 차는 lst의 길이가 홀 수인 경우로 판별하였고, 이러한 차는 출..
n진수 게임 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 숫자를 n진수로 바꿔주는 change 함수를 만들었다. 그리고 게임 전체를 시뮬레이션하는 코드를 만들었고, t*m번 시뮬레이션하도록 하였다. 마지막으로 cnt를 사용하여 정답이 될 숫자들을 answer에 저장하였다. def solution(n, t, m, p): answer = '' dic = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: ..
파일명 정렬 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 정규식은 그냥 내가 사용하고 싶지 않아서 처음부터 사용할 생각 조자 하지 않았다. here! 부분을 추가하기 전에는 틀렸었는데, 추가하고 나니 성공했다. TAIL에 숫자가 다시 나타날 수 있기 때문에 틀렸다고 생각한다. 결국 문제를 제대로 읽었냐, 읽지 않았냐의 차이이다. flag로 HEAD와 TAIL을 구분하였다. 그리고 세 개의 조건에 따라 정렬하였고, 특히 마지막 조건인 "두 ..
방금그곡 (Level 2) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 문제를 있는 그대로 구현하려고 노력하였다. 처음에 'C#'을 'c'로 바꿀 생각은 못하였는데, 이 아이디어는 다른 사람들의 풀이에서 가져왔다. split_melody 함수를 만들어 'C#ABD#'일 경우 'cABd'로 바꾸어주는 작업을 하도록 하였다. 그리고 musicinfos를 돌면서 음악 재생 시간, 재생된 전체 멜로디를 구하였다. 만약 m이 새로 만들어진 전체 멜로디 안에 있다..