문제 링크 코딩테스트 연습 - 후보키 [["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) ..
문제 링크 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 � programmers.co.kr 풀이 연산자(long long)와 피연산자(char)를 미리 vector 컨테이너에 담고 "+-*"를 순열로 돌리면서 해당 연산자와 같으면 계산하고 다르면 넘어가는 식으로 구현하였다. 연산 순서가 있기 때문에 스택에 넣어서 pop_back()하는 식으로 구현하였다. next_permutation()함수를 사용하여 모든 조건을 검사하였다. 더보기 #include #include #include #include using namespace std; ..
문제 링크 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. � programmers.co.kr 풀이 return 하는 값이 폰켓몬 종류의 최대값이므로 내가 몇 마리의 폰켓몬을 선택했는지는 알려주지 않아도 된다. 따라서, 폰켓몬 nums 배열을 sort한 후 같은 폰켓몬을 고르지 않으면서 num.size()/2 만큼 고르게 되거나 num.size()안에서 최대 폰켓몬 종류 개수를 return 하면된다. 더보기 #include #include using namespace std; int solution(vector nums) { int an..
문제 링크 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 풀이 처음과 맨 끝에 '{', '}'을 제거하고 '{'를 만나면 안의 숫자들을 map에 할당한 후 map을 순회하면서 개수가 1부터 순서로 하여 answer에 없는 숫자를 넣어주었다. 더보기 #include #include #include #include #include using namespace std; vector solution(string s) { vector answer; map count..