본문 바로가기

programers3

프로그래머스 - 오픈채팅방 프로그래머스 - 오픈채팅방 문제 접근 방법 딕셔너리를 활용하여 uid별로 닉네임을 기록한뒤 출입로그를 최종 닉네임으로 나타낸다. 내가 생각한 work flow 닉네임의 변경은 'Enter' 또는 'Change'일 때만 일어나므로 해당 remark가 존재하면 닉네임을 다시 기록한다. Change는 최종출력인 출입로그에 기록되지 않는다. 모든 닉네임 변경과정이 종료된 시점에서 출입로그의 닉네임을 uid에 맞게 작성한다. 완성한 솔루션 JavaScript function solution(record) { // uid를 기준으로 닉네임을 수집한다. // (변경되었다면 최종만) let nicknameList = {}; let greet = { 'Enter': '들.. 2021. 5. 12.
프로그래머스 - 괄호변환 프로그래머스 - 괄호변환 2021/04/15 문제 접근 방법 helper함수 '더이상 쪼갤 수 없는 균형잡힌 문자열'과 '남은 문자열'로 나누는 함수를 만든다. '(' 와 ')' 의 수가 같다면 균형잡힌 문자열이다. 올바른 괄호 문자열 올바른 괄호 문자열인지 검증해야 한다. 이어진 괄호를 반복적으로 제거하여 남은 괄호가 있는지 확인하다. 완성된 solution function solution(p) { if (p === '') return ''; let [u, v] = helper(p); // u = 균형잡힌 문자열, v = 남은 문자열 if (isPerfect(u)) return u + solution(v); else .. 2021. 4. 15.
프로그래머스 - 삼각 달팽이 프로그래머스 - 삼각 달팽이 2021/04/14 문제 접근 방법 list의 길이가 1부터 하나씩 증가하는 형태로 n개의 list를 생성한다. 1부터 가장 큰 수까지 방향에 맞게 list에 넣는다. 가장 큰 수 가장 큰 수는 n이 1, 2, 3, 4, 5, 6 일 때 1, 3, 6, 10, 15, 21 과 같이 [초항이 1이며 [초항이 2이고 공차가 1인 '등차수열']을 계차로 갖는 '계차수열']의 n번째 항임을 알 수 있다. Layer class를 만든다. Array를 상속받아 Layer라는 클래스를 만든다. 삼각 달팽이의 각 층을 구성하게 할 것이다. 아래와 같은 기능이 필요하다. 가장 앞에서부터 비어있는(empty)곳에 삽입 가장 뒤에서부터 비어있는(empty)곳에 삽입 .. 2021. 4. 14.