본문 바로가기

Algorithm14

[프로그래머스] [3차] 파일명 정렬 [3차] 파일명 정렬 개요 - 단어(head) + 숫자 + 단어(tail) 로 이루어진 파일명을 단어와 숫자 순으로 정렬하는 문제이다. - head와 숫자를 구분하는 코드와 단어 > 숫자 순으로 우선순위를 정하여 정렬하는 문제로 Comparable 인터페이스를 이용하면 어렵지않게 해결할 수 있다. 문제 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록.. 2022. 4. 18.
[프로그래머스] 단체사진 찍기 단체사진 찍기 개요 - 카카오의 캐릭터들이 줄을지어 사진을 찍는데, 캐릭터들의 자리에 대한 제약조건을 만족하는 케이스 수를 찾는 문제이다. - dfs(depth first search, 깊이 우선 탐색) 방식을 사용한 캐릭터들의 순열을 구한 뒤 제약 조건들을 만족하는 경우들의 수를 세는 방식으로 해결했다. 문제 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 달라 어떤 순서로 설지 정하는데 시간이 오래 걸렸다. 네오는 프로도와 나란히 서기를 원했고, 튜브가 뿜은 불을 맞은 적이 있던 라이언은 튜브에게서 적어도 세 칸 이상 떨어져서 서기를 원했다. 사진을 찍고 나서 돌아오는 길에, 무지.. 2022. 3. 26.
[프로그래머스] 오픈채팅방 오픈채팅방 개요 - 채팅방의 입장, 퇴장 이력을 출력하는 문제로 map 자료구조를 사용한다면 어렵지 않게 해결할 수 있는 문제이다. 문제 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에.. 2022. 3. 22.
[프로그래머스] 문자열압축 문자열압축 개요 - 기본적인 구현 문제로 문제를 분석하고 해결 방안에 대한 순서를 잘 세운다면 어렵지않게 문제를 해결할 수 있다. 문제 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, "abcab.. 2022. 3. 21.