알고리즘/프로그래머스
-
[프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [3차] n진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, ... 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. https://programmers.co.kr/learn/courses/30/lessons/17687 📝 문제 분석 튜브가 말해야 하는 숫자를 모두 구하려면, m * (t - 1) + p개의 답을 만들고, 튜브의 순서에 맞는 답만 골라내줍니다. 💡 Integer.toString(num, radix) = num을 ra..
-
[프로그래머스] 셔틀버스 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. https://programmers.co.kr/learn/courses/30/lessons/17678 📝 문제 분석 00 : 00에서 23 : 59 사이의 시각이 입력으로 들어온다. cnt[180] = 03:00에 대기열에 도착하는 사람의 수 0분부터 1440분까지 대기열을 배열에 저..
-
[프로그래머스] 추석 트래픽 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 추석 트래픽 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량 은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다. https://programmers.co.kr/learn/courses/30/lessons/17676 📝 문제 분석 임의의 1초 구간에 동시에 처리한 로그의 최대값을 구하는 문제입니다. 일단 로그의 시간을 비교하기 쉽게 밀리세컨으로 바꿔줍니다. 그리고 위 그림의 형태처럼 나열하기 위해..
-
[프로그래머스] 프렌즈4블록 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. https://programmers.co.kr/learn/courses/30/lessons/17679 📝 문제 분석 지워지는 조건에 만족하는 2 * 2모양이 여러 개 있다면 한꺼번에 지워진다고 했으므로, 모든 칸을 순회하면서 2 * 2 모두 같은 모양을 만족하는 칸에 표시를 합니다. ( visited[][] ..
-
[프로그래머스] 캐시 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. https://programmers.co.kr/learn/courses/30/lessons/17680 📝 문제 분석 LRU 캐시를 구현하는 문제입니다. 캐시 사이즈만큼 최근에 사용한 도시 순서대로 캐시에 넣습니다. 도시를 찾을 때, 캐시에 있는 도시라면 가장 최근에 사용한 것..
-
[프로그래머스] 뉴스 클러스터링 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. https://programmers.co.kr/learn/courses/30/lessons/17677 📝 문제 분석 서로의 집합에 원소가 있는지 확인하는 연산을 해야하고, 중복되는 원소가 있을 수 있기때문에 자바에는 멀티셋이 없으므로 형태의 맵을 사용합니다. 다중 집..
-
[프로그래머스] 다트 게임 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 다트 게임 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. https://programmers.co.kr/learn/courses/30/lessons/17682 📝 문제 분석 입력으로 "점수|보너스|[옵션]" 형태의 문자열 3세트가 들어옵니다. 점수, 보너스, 옵션을 정규식 매칭으로 3개의 그룹으로 나누어줍니다. 스타상(*)은 해당 점수와 바로 전에 얻은 점수를 각각 2배로 만..
-
[프로그래머스] 비밀 지도 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA알고리즘/프로그래머스 2021. 9. 8. 21:45
🖇️ 문제 링크 코딩테스트 연습 - [1차] 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. https://programmers.co.kr/learn/courses/30/lessons/17681 📝 문제 분석 두 장의 지도를 겹칠 때, 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽입니다. 어느 하나라도 참이라면 되기 때문에 비트마스킹 OR연산을 사용합니다. ..