본문 바로가기
  • Jetpack 알아보기

프로그래머스 - JAVA/Level 214

[JAVA] 프로그래머스 Lv.2 : [1차] 뉴스 클러스터링 🔥 2018 KAKAO BLIND RECRUITMENT 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. "코딩 실력만 본다" 카카오 "코딩 능력만으로 2018 신.. 2021. 8. 15.
[JAVA] 프로그래머스 Lv.2 : [3차] 파일명 정렬 🔥 2018 KAKAO BLIND RECRUITMENT 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img.. 2021. 8. 14.
[JAVA] 프로그래머스 Lv.2 : 스킬트리 🔥 Summer/Winter Coding (~2018) 예제: skill skill_trees return "CBD" ["BACDE", "CBADF", "AECB", "BDA"] 2 제한 조건: 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있습니다. 스킬 순서와 스킬트리는 문자열로 표기합니다. 예를 들어, C → B → D 라면 "CBD"로 표기합니다 선행 스킬 순서 skill의 길이는 1 이상 26 이하이며, 스킬은 중복해 주어지지 않습니다. skill_trees는 길이 1 이상 20 이하인 배열입니다. skill_trees의 원소는 스킬을 나타내는 문자열입니다. skill_trees의 원소는 길이가 2 이상 26 이하인 문자열이며, 스킬이 중복해 주어지지 않습니다. So.. 2021. 8. 12.
[JAVA] 프로그래머스 Lv.2 : [3차] n진수 게임 🔥 2018 KAKAO BLIND RECRUITMENT 입력 형식: 진법 n, 미리 구할 숫자의 갯수 t, 게임에 참가하는 인원 m, 튜브의 순서 p 가 주어진다. 2 ≦ n ≦ 16 0 < t ≦ 1000 2 ≦ m ≦ 100 1 ≦ p ≦ m 출력 형식: 튜브가 말해야 하는 숫자 t개를 공백 없이 차례대로 나타낸 문자열. 단, 10~15는 각각 대문자 A~F로 출력한다. 예제: n t m p result 2 4 2 1 "0111" 16 16 2 1 "02468ACE11111111" 16 16 2 2 "13579BDF01234567" Solution #1 class Solution { public String solution(int n, int t, int m, int p) { StringBuilder.. 2021. 8. 3.
[JAVA] 프로그래머스 Lv.2 : 짝지어 제거하기 🔥 2017 팁스타운 예제: s result baabaa 1 cdcd 0 제한 사항: 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. Solution #1 import java.util.Stack; class Solution { public int solution(String s) { char[] array = s.toCharArray(); Stack stack = new Stack(); for (char c : array) { if (!stack.isEmpty() && c == stack.peek()) { stack.pop(); } else{ stack.push(c); } } return stack.isEmpty() ? 1 : 0; } } Result #1 M.. 2021. 6. 23.
[JAVA] 프로그래머스 Lv.2 : 올바른 괄호 예제: s answer "()()" true "(())()" true ")()(" false "(()(" false Solution #1 import java.util.Stack; class Solution { public boolean solution(String s) { char[] array = s.toCharArray(); int count = 0; Stack stack = new Stack(); for (char c : array) { if (c == '(') stack.push(c); else { if (stack.isEmpty()) return false; stack.pop(); } } return stack.isEmpty(); } } Result #1 More Algorithm! 👇👇 gi.. 2021. 6. 23.
[JAVA] 프로그래머스 Lv.2 : 땅따먹기 예제: land answer [[1,2,3,5],[5,6,7,8],[4,3,2,1]] 16 제한 조건: 행의 개수 N : 100,000 이하의 자연수 열의 개수는 4개이고, 땅(land)은 2차원 배열로 주어집니다. 점수 : 100 이하의 자연수 Solution #1 import java.util.Arrays; class Solution { int solution(int[][] land) { int answer = 0; for (int i = 0; i < land.length - 1; i++) { land[i + 1][0] += Math.max(Math.max(land[i][1], land[i][2]), land[i][3]); land[i + 1][1] += Math.max(Math.max(land[i].. 2021. 6. 23.
[JAVA] 프로그래머스 Lv.2 : 숫자의 표현 예제: n result 15 4 Solution #1 class Solution { public int solution(int n) { int answer = 0; int index = 1, sum = 0; while (index 2021. 6. 9.
[JAVA] 프로그래머스 Lv.2 : 최댓값과 최솟값 예제: s return "1 2 3 4" " 1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" Solution #1 class Solution { public String solution(String s) { String[] array = s.split(" "); int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (String n : array) { int value = Integer.parseInt(n); if(min > value) min = value; if(max < value) max = value; } return min + " " + max; } } Result #1 More Algorithm! 👇👇 gi.. 2021. 6. 9.
[JAVA] 프로그래머스 Lv.2 : 피보나치 수 예제: n return 3 2 5 5 제한 조건: n은 1이상, 100000이하인 자연수입니다. Solution #1 class Solution { public int solution(int n) { int[] array = new int[n + 1]; array[0] = 0; array[1] = 1; for (int i = 2; i 2021. 6. 9.