Algorithm
[java] 백준 1644 (소수의 연속합) Gold 3
Problem : https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net Approach 한쪽에서 시작하는 투포인터를 활용한 문제였다. 주어진 수 N을 연속된 소수의 합으로 만드는 방법의 가짓수를 찾는 문제이다. 따라서, 일단 연속된 소수 수열을 구해야한다. 주어진 수 N이 소수라면 그 또한 방법 가짓수에 포함되기 때문에, 1 ~ N까지의 수들 중에서 소수를 모두 찾아야한다. 소수를 구하는 방법은 에라토스테네스의 체 방법을 사용하였다. 여기서는 해당 방법을 설명하진 않는다. start = 0, end = 0으로 시작한다. 에라토스테네스의 체를 활용하여 소수 수열을 구한다..
[java] 백준 1806 (부분합) Gold 4
Problem : https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net Approach 한쪽에서 시작하는 투포인터 문제이다. 연속된 수의 합이 S이상이 되는 것 중, 가장 짧은 길이를 찾는 문제이다. start와 end를 모두 배열의 처음부터 시작한다.(start = 0, end = 0) 나는 Index 처리 때문에 배열의 크기를 n+1로 지정해주었다. start와 end가 같다면, sum이 S이상이라면, 최소 길이는 1이다. 1보다 ..
[java] 프로그래머스 (풍선 터트리기) Level 3
Problem : https://programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr Approach 월간 코드 챌린지 시즌1 문제였다. 문제의 조건은 다음과 같다. 임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다. 터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으로 밀착시킵니다. 인접한 두 풍선 중에서 번호가 더 작은 풍선을 터트리는 행위는 최대 1번만 할 수 있습니다. 즉, 어떤 시점에서 인접한 두 풍선 중 번호가 더 작은 풍선을 터트렸다면, 그 이후에는 인접한 두 풍선을 고..
[java] 프로그래머스 (브라이언의 고민) Level 3
Problem : https://programmers.co.kr/learn/courses/30/lessons/1830 코딩테스트 연습 - 브라이언의 고민 programmers.co.kr Approach 2017 카카오코드 예선문제였다. 결과적으로 문제를 통과하진 못했다. 문제의 조건은 다음과 같다. 광고글은 원래 문구에 다음 규칙을 적용하여 만들 수 있다. (규칙 1) 특정 단어를 선택하여 글자 사이마다 같은 기호를 넣는다. ex) HELLO -> HaEaLaLaO (규칙 2) 특정 단어를 선택하여 단어 앞뒤에 같은 기호를 넣는다. ex) WORLD -> bWORLDb 위의 두 가지 규칙은 한 단어에 모두 적용될 수 있지만 같은 규칙은 두 번 적용될 수 없다. 한 번 쓰인 소문자(특수기호)는 다시 쓰일 ..
[java] 백준 2470 (두 용액) Gold 5
Problem : https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net Approach 투포인터를 활용하여 풀었다. 주어진 용액들 중 두 용액을 합쳐 특성값이 0에 가장 가까운 혼합 용액을 만드는 문제이다. 주어진 용액들의 특성값은 중복값이 없다. 따라서 나는 우선 주어진 용액들의 특성값을 오름차순으로 정렬했다. 그런후 start = 0, end = length - 1로 정한 후,범위를 좁혀나가며 용액의 특성값들을 ..
[java] 프로그래머스 (추석 트래픽) Level 3
Problem : https://programmers.co.kr/learn/courses/30/lessons/17676 코딩테스트 연습 - [1차] 추석 트래픽 입력: [ 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT ..
[java] 프로그래머스 (n진수 게임) Level 2
Problem : https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 일단 0부터 숫자를 1씩 늘린 숫자를 N진법으로 바꾼 후, 문자열 s에 붙인다. 10진수 A를 N진법으로 바꾸는 방법은 아래와 같다. A를 N으로 나눈 나머지를 리스트의 끝에 저장한다. A를 N으로 나눈 몫을 다시 A에 저장한다. 1번 2번과정을 A가..
[java] 프로그래머스 (파일명 정렬) Level 2
Problem : https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 자바로 풀이하려면 Comparator를 활용하여 정렬의 기준을 override 해주면 된다. 우선 숫자가 나오기 전까지 문자열을 가지고 알파벳 정렬을 수행한 후, 만약 같다면 숫자 부분을 가지고 숫자 정렬을 수행한다. Code import java.util..
[java] 프로그래머스 (압축) Level 2
Problem : https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 우선 'A : 1' ~ 'Z : 26' 까지 hashmap에 put한 후, 주어진 문자열의 앞부터 한 글자씩 순회를 시작한다. 현재 s가 hashmap에 존재한다면 계속하여 문자열을 하나씩 붙여나간다. hashmap에 없는 문자가 생긴다면, 그 문자열을 hashmap에 index+1로 pu..
[java] 프로그래머스 (방금그곡) Level 2
Problem : https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr Approach 2018 KAKAO BLIND RECRUITMENT 문제였다. 일단 C#, D#, F#, G#, A# 을 각각 a, d, f, g, a로 치환했다. 치환한 후 곡의 플레이시간을 계산하여 곡의 음을 플레이시간만큼 만든다. 만들어진 음의 sequence에서 주어진 m이 있는지를 찾는다. 3번의 결과로 찾아진 것이 여러 ..