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

알고리즘120

[JAVA] 프로그래머스 Lv.1 : 없는 숫자 더하기 🔥 월간 코드 챌린지 시즌3 예제: numbers result [1, 2, 3, 4, 6, 7, 8, 0] 14 [5, 8, 4, 0, 6, 7, 9] 6 제한 조건: 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. Solution #1 class Solution { public int solution(int[] numbers) { int answer = 9 * 10 / 2; for(int n : numbers){ answer -= n; } return answer; } } More Algorithm! 👇👇 github.com/ggujangi/ggu.programmers ggujangi/ggu.programmers 프로그래머스 알고.. 2022. 5. 21.
[JAVA] 프로그래머스 Lv.1 : 나머지가 1이 되는 수 찾기 🔥 월간 코드 챌린지 시즌3 예제: arr result [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 제한 조건: 3 ≤ n ≤ 1,000,000 Solution #1 class Solution { public int solution(int n) { for(int i = 2; i < n; i++){ if(n % i == 1) return i; } return 1; } } More Algorithm! 👇👇 github.com/ggujangi/ggu.programmers ggujangi/ggu.programmers 프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an accoun.. 2022. 5. 21.
[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] 프로그래머스 Weekly 2 : 상호 평가 🔥 Weekly Challenge : 2주차 대학 교수인 당신은, 상호평가를 통하여 학생들이 제출한 과제물에 학점을 부여하려고 합니다. 아래는 0번부터 4번까지 번호가 매겨진 5명의 학생들이 자신과 다른 학생의 과제를 평가한 점수표입니다. No. 0 1 2 3 4 0 100 90 98 88 65 1 50 45 99 85 77 2 47 88 95 80 67 3 61 57 100 80 65 4 24 90 94 75 65 평균 45.5 81.25 97.2 81.6 67.8 학점 F B A B D 위의 점수표에서, i행 j열의 값은 i번 학생이 평가한 j번 학생의 과제 점수입니다. 0번 학생이 평가한 점수는 0번 행에담긴 [100, 90, 98, 88, 65]입니다. 0번 학생은 자기 자신에게 100점, 1번 .. 2021. 8. 11.
[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] 프로그래머스 Weekly 1 : 부족한 금액 계산하기 🔥 Weekly Challenge : 1주차 예제: price money count result 3 20 4 10 제한 사항: 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 count : 1 ≤ count ≤ 2,500, count는 자연수 Solution #1 class Solution { public long solution(int price, int money, int count) { long sum = 0; while (count != 0) { sum += price * count; count--; } long result = sum.. 2021. 8. 2.
[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.