문제 링크 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램�� programmers.co.kr 풀이 조건이 많은 것은 주석을 다는 습관을 다지고 있다. 주석에 대해서 요약해보자면 * 요약 // 선행 처리 1) answer에 복사생성자를 통해 files를 미리 복사 2) files를 모두 대문자로 변환(cctype과 algorithm 헤더가 필요) // 처리 1) 파일명 분할(vector을 선언하여 first는 본래의 string, second는 part별로 나눈 string을 저장하였다. (answer가 first에 들어간다, 이..
문제 링크 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 풀이 첫 번째로 사전 초기화를 하였고, 이는 map으로 하였다. 중복이 없어야된다고 생각했다? 그리고 // TODO 부분에서부터는 map.find() 함수를 이용하여 못찾았을 때는 map.end()와 같을 점을 이용했다. 그리고, 찾았던 곳까지 index를 출력하고 못찾은 것은 사전에 등록하였다. [요약] 사전 초기화; 반복문(){ 반복문(){ 출력용 변수 대입; 다음 문자랑 합침 비교; --- 못찾으면 탈출 } 출력용 사전 등록 } 더보기 #include #include ..
문제 링크 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, �� programmers.co.kr 풀이 문제를 보고 이건 그냥 열심히 비교해서 풀어야겠다. 라는 생각이 들고 나서 열심히 for문 돌렸다. [요약] 0) 선행처리 m 변수를 선행으로 미리 '#'은 대문자가 아닌 소문자로 치환했다.(*중요*) ex) C# -> c, D# -> d - 예전에 치환문제로 간단하게 풀리는거를 조건 따지면서 머리 굴린 적이 있었는데 이번에는 바로 생각났다. 참고로) 여기서는 string의 back() 참조자를 이용하여 아스키 코드 값을 연산했..
문제 링크 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 풀이 주석으로 표시는 해놓았지만, 간단히 요약하자면 풀이는 다음과 같다. next_permutation함수를 써서 처음에 column 개수로 '1'을 초기화한 후, 앞에서부터 '0'으로 바꾸어서 조합 조건을 만들어냈다. 즉, next_permutation을 do-while로 돌리면 첫 번째로 0111로 되면 0111, 1011, ..
문제 링크 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 풀이는 간단하다. map을 이용하였고 map의 "[ ]" operator 연산자로 insert와 update를 동시에 해주는 이점을 이용하였다. (= key값이 중복이 안되는 점을 이용) 1) 선 처리 과정에서는 첫 글자만 보고 'C', 'E', 'L'로만으로 switch-case로 나눠서 진행 1.1)Change는 닉네임을 갱신 1.2)Enter는 answer 컨테이너에 id + "님이 들어왔습니다."를 넣어주는 동시에, 닉네임을 갱신 1.3)..
문제 링크 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr 풀이 뭔가 큐를 쓸까하다가도 우선순위가 LRU가 있으니 vector 컨테이너 한 개로 erase하며 쓸까하다가 또, vector 컨테이너 두 개 쓸까하다가 예전에 공부했던 de..
문제 링크 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 풀이 어려웠다... 실제였으면 이것만 풀었을거같다. check() 함수를 통해서( m 1) m이 자기 자신일 때, 1, 2, 3이 자신의 문자(char)와 같은 지 비교하여 bool형을 return 하였다. ( 2 3) 그리고 제일 큰 while 문은 터뜨린 것이(지워진 블락이) 없을 때 탈출하도록 하였다. check() 함수의 인덱스 초과를 방지하기 위해 2중 for문의 m-1, n-1로 돌렸으며 copy본에 '0' 문자로 바..
문제 링크 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 풀이 처음에는 솔루션 함수에다가 다 짜다가 너무 길어져 중복되는 것은 함수로 뺐다. ex() 함수는 큐를 이용하여 2글자씩 소문자로 바꿔서 넣는 역할을 한다.(물론 예외처리 다했다.) 그리고 toLower() 함수는 소문자로 바꾸는 STL을 몰라서 일단 그 자리에서 직접 만든 것이다. 그리고 algorithm에 있는 set_union함수와 set_intersection함수를 이용하여 자카드 유사도를 구하였다. 풀이 요약 1) ..