java
-
프로그래머스 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가지만 유의하면 되는 문제다. 처음에 알파벳 집합만 가능하다에서 알파벳을 제외한 글자는 제거하고 집합을 구해줬더니, 생기면 안되는 집합..
-
프로그래머스 Lv.2) 예상 대진표알고리즘/프로그래머스 2020. 5. 22. 22:35
예상 대진표 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N� programmers.co.kr 풀이 이 문제를 2일 전인가 쯤 같이 취준하고있는 형한테 문제를 받았었다. 풀이는 비트 연산을 통해서 경기 수를 구하는 것이었다. 하지만, 내가 비트연산으로 문제를 풀기에는 아직 무리라는 생각이 들어서 나만의 방식으로 풀기로 했다. 궁금하신 분은 여기에서 확인하시면 좋을 것 같습니다. : ) 처음 풀었을 때는 1번과 25번이 시관초과가 떴었다. 그래서 바로 매치를 할 수 있는 경우를 추가시켜주었다. if(left%2 ==1..
-
프로그래머스 Lv.2) 숫자의 표현알고리즘/프로그래머스 2020. 5. 21. 16:51
숫자의 표현 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 풀이 이 문제도 삽질을 조금 한것같다. 수식을 통해 풀어야한다는 압박감에 이것 저것 시도해본 문제였다. 이분탐색을 통해서 풀어보려고도 하고, 점화식을 세워서 풀어보려고도 했는데 코드에서 보시면 알 수 있듯 모두 실패했다.. 시간초과거나 정답이 아닌 경우가 많았기 때문이다. 이 문제도 질문하기 탭을 통해 깨달음을 얻었다. 그냥 완전탐색을 하면 된다는 사실을 알고 허무했다. n이 최대 10000인데 완전탐색하면 효율이 안좋지 않나 생..
-
프로그래머스 Lv.2) 행렬의 곱셈알고리즘/프로그래머스 2020. 5. 21. 16:48
행렬의 곱셈 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 풀이 행렬의 곱셈에 대해 배열의 곱셈이라고 이해하고 문제이해를 5분정도 못했다... ㅎㅎㅎㅎ 아무튼 행렬의 곱셈을 구글링해서 곱셈법을 다시 배웠다.. ㅠㅠ 1. 배열 arr1과 arr2를 통해 답이되는 answer 배열을 만들어 준다. 1-1. 이때 크기는 arr1의 행, arr2의 열이 된다. (행렬의 연산 특징) 2. 각각 배열의 idx에 대해 행렬 곱셈식을 구해 더해준다. 코드 class Solution { public int[..
-
프로그래머스 Lv.2) 최댓값과 최솟값알고리즘/프로그래머스 2020. 5. 21. 16:43
최댓값과 최솟값 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를�� programmers.co.kr 풀이 주어진 문자열에서 숫자의 최대값과 최소값을 찾는 문제다. 문자열을 split하는 방법에 대해 알고 있다면 쉬운 문제였다. 이 문제는 두 가지의 방식으로 적었는데, StringTokenizer를 통해 split을 하는 방법과 split 메소드를 통해 하는 방법 두 가지가 떠올랐기 때문이다. 또한, StringTokenizer는 IDE에서만 사용해봤기 때문에 제대로 알고있는지 시험해보기 위해 써봤다. StringTok..