자바
-
프로그래머스 Lv.2) 압축알고리즘/프로그래머스 카카오 2020. 5. 26. 22:32
2018 KAKAO BLIND RECRUITMENT [3차] 압축 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 풀이 오늘 푼 문제중에 제일 쉽게 푼 문제였다. 기본 알파벳 A-Z 까지 사전에 미리 등록하고, 입력받은 문자열을 돌면서 조건에 따라 사전에 추가, 출력할 색인 번호를 담아주었다. 사전으로는 HashMap을 선택하여 특정 문자를 포함하고 있는지, 포함하고 있다면 색인 번호를 받아왔다. 출력할 색인 번호는 로직에 따라 ArrayList에 순서대로 담은 뒤, 마지막에 해당 크기만큼 배열을 만들어 저장해주어 리턴했다. 로직 ..
-
프로그래머스 Lv.2) 방금그곡알고리즘/프로그래머스 카카오 2020. 5. 25. 23:28
2018 KAKAO BLIND RECRUITMENT [3차] 방금그곡 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, �� programmers.co.kr 풀이 꽤나 까다로운 문제였다. 악보에 사용되는 음이 A,B,C 단순 문자와 함께 올림표가 포함된 C#,D# 이런 문자가 함께 있어서 그런 것 같다.. 다른 분들은 음표를 변형해서 풀었다는 글도 보았고, 쉽게 푸신분도 있다고 하는 것 같은데 나는 그렇지 않았다. 먼저 테스트 케이스에서 계속 실패하던 부분을 살펴보면, 1. 처음 음악의 악보를 저장할 때, 올림표가 포함된 악보 저..
-
프로그래머스 Lv.2) 영어 끝말잇기알고리즘/프로그래머스 2020. 5. 24. 16:43
영어 끝말잇기 코딩테스트 연습 - 영어 끝말잇기 3 [tank, kick, know, wheel, land, dream, mother, robot, tank] [3,3] 5 [hello, observe, effect, take, either, recognize, encourage, ensure, establish, hang, gather, refer, reference, estimate, executive] [0,0] programmers.co.kr 풀이 ArrayList를 이용한 풀이(WordChain 메소드)와 이중 for문을 돌면서 조건 검사(getInfo 메소드) 두 방법으로 풀어봤다. ArrayList도 언뜻 보면 2중 포문 같겠지만, turn과 person을 나눴을 뿐 단일 for문과 같다. ..
-
프로그래머스 Lv.2) 후보키알고리즘/프로그래머스 카카오 2020. 5. 22. 23:18
2019 KAKAO BLIND RECRUITMENT 후보키 코딩테스트 연습 - 후보키 [["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 풀이 정말 어려웠다. 매우매우 복잡한 문제였다. 이 문제가 레벨 2라는 것에 의문이 들었다... 처음에는 단일 애트리뷰트가 후보키가 되는 경우를 저장하고, 이 경우를 제외하고 키를 두개부터 row의 수만큼 순열을 구해 가장 작은 자리 수 까지만 후보키를 구하려고 했다. 하지만, 위의..
-
프로그래머스 Lv.2) 오픈채팅방알고리즘/프로그래머스 카카오 2020. 5. 22. 23:05
2019 KAKAO BLIND RECRUITMENT 오픈채팅방 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 오늘 푼 문제 중에 가장 간단한 문제였다. 크게 주의해야할 부분 없이 입장, 퇴장 명령어를 저장시키는 LinkedList와, 유저 id에 따라 이름을 저장할 HashMap 두 자료구조를 이용해 풀었다. 명령어에 따라 변경인 경우 닉네임을 변경해주었고, 입장이나 퇴장 명령어는 명령어 List에 저장했다. 이후 명령어 리스트 만큼 정답 배열을 만들고, 리스트를 돌면서 미리 저장해둔 멘트와 유저 아이..
-
프로그래머스 Lv.2) 캐시알고리즘/프로그래머스 카카오 2020. 5. 22. 23:00
2018 KAKAO BLIND RECRUITMENT [1차] 캐시 코딩테스트 연습 - [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 부분말고는 버벅이지 않은 문제다. 오랜만에 보는 LRU 때문에 처음에 그냥 Queue에 따라서 poll하면 ..
-
프로그래머스 Lv.2) 프렌즈4블록알고리즘/프로그래머스 카카오 2020. 5. 22. 22:53
2018 KAKAO BLIND RECRUITMENT [1차] 프렌즈4블록 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 풀이 이 문제는 큰 어려움 없이 푼 것 같다. 전체 board를 돌면서 4개가 모여있는 구역을 int 배열을 통해 표시해주고, 전체 탐색이 끝날 때 마다 표시된 구역을 지우면서 카운트를 세주었다. 이 때, 지워진 블록 위에 있는 블록들을 아래로 하나씩 내리면서 블록을 당겨주었다. while문을 통해 삭제가 진행되지 않을 때 까지 진행해주었다. 로직 1. 전체 boar..
-
프로그래머스 Lv.2) [1차] 뉴스 클러링알고리즘/프로그래머스 카카오 2020. 5. 22. 22:47
2018 KAKAO BLIND RECRUITMENT [1차] 뉴스 클러링 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브�� programmers.co.kr 풀이 한 index를 기준으로 다음 Index와 합쳐 하나의 집합을 이루는데, 이 때 알파벳인지를 확인하는 것과 다중집합이 가능하다는 점, 대소문자 차이는 무시하고 같은 원소로 취급한다는 점, 합집합이 0일 때는 1을 리턴한다 이 4가지만 유의하면 되는 문제다. 처음에 알파벳 집합만 가능하다에서 알파벳을 제외한 글자는 제거하고 집합을 구해줬더니, 생기면 안되는 집합..