코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 해결 과정 20분 소요. 지난 번에 풀었던 문제와 IDEA가 비슷한데 더 쉽게 접근 가능해서 바로 풀린 듯. 문제 해설에 나와있던 것 처럼, completeList를 먼저 만들어두고, 하나 씩 비교하면서 answer 리스트에 append 했다. 스택/큐 카테고리에 있었는데 List 사용하는 것 때문에 이 카테고리에 있는 건가? 나의 풀이 import math def solution(progresses, speeds): answer = [] complete..
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해결 과정 소요 시간 15분 뭐지 전 문제랑 똑같은 2단계인데 ????? 아무튼, 그냥 문제에서 하라는 대로 구현하면 된다. 어찌되었든, 최종 사람의 이름을 먼저 저장하는 공간이 필요했고, 이를 personDic에 저장하기로 했다. 같은 key 값이 있을 경우에는 후자에 오는 value 값으로 덮어씌우기 때문에 조건문 따질 필요 없이 바로 personDic에 key-value 형태로 저장했다. python의 dictionary 사용. 나의 풀이 def solut..
코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 해결 과정 처음 풀었을 때는 한 시간 정도 걸렸는데, 기본 케이스에서 부터 틀렸음. 반례 계속 고치려다가 더 꼬이는 것 같아서 다음 날 새롭게 다시 시작함. (이 때는 테케 해결까지 50분 가량 소요) 어제 생각했던 IDEA 기반으로 이번에는 finalStr에 직접 문자를 추가하고 길이를 계산하는 식으로 변경. (문제에서 설명하는 그대로 코드에 구현) 이번에도 print문 찍어가면서 "aabbaccc" 해당 케이스가 제대로 나오는지 따져가며 풀었음. 마지..
알고리즘 분류 구현, 시뮬레이션 해결 과정 역시나 '구현' 문제는 여러 IDEA 자체를 생각해볼 수 밖에 없는 듯 하다. IDEA 자체를 생각하기 어려웠음. IDEA만 찾아보고 코드로 구현했는데, 틀렸습니다. -> 나중에 알고보니 입력 받을 때 int가 아니라 string으로 입력받고 있어서 '100' < '99' 반례 케이스가 생겨버린 문제 ㅋ 아니 이건 진짜 IDEA를 찾는게 먼저인듯. 나의 코드 H, W = map(int, input().split()) heightList = list(map(int, input().split())) result = 0 for index, value in enumerate(heightList): if index == 0 or index == len(heightList..
더보기 준비운동 PART2. 약점 체크 문제풀이를 쭉쭉하기 전, 기본 알고리즘을 잘 습득했는지 점검할 수 있는 문제를 소개합니다. 뼈대 문제는 시간을 두고 반복 구현하여 손에 익혀서 응용문제가 나왔을 때 유연하게 대처할 수 있는 생각을 길러야 합니다. 재귀 탐색의 기본: 연산자 끼워넣기 (🥈실버 1티어) 스택의 응용: 괄호의 값 (🥈실버 2티어) 시뮬레이션 기본: 빗물 (🥇 골드 5티어) 완전탐색의 유연한 생각: 가르침 (🥇 골드 5티어) 그리디의 기본: 멀티탭 스케줄링 (🥇 골드 2티어) 투 포인터의 기본: 부분합 (🥇골드 4티어) 벨만포드 뼈대문제: 최소비용 구하기 (🥇 골드 5티어) Prime, Kruskal 뼈대문제: 최소 스패닝 트리 (🥇 골드 4티어) KMP 뼈대문제: 부분 문자열 (🥇 골드 ..