반응형

Algorithm/Java 76

프로그래머스 - 3진법 뒤집기 java :: 월간 코드 챌린지 시즌1 :: 68935

문제 링크 코딩테스트 연습 - 3진법 뒤집기 | 프로그래머스 (programmers.co.kr) 문제 이해하기 문제의 핵심은 3진법을 구하는 겁니다. 3진법 구하는 방법은 n을 3으로 나누어 떨어지는 수를 순서대로 나열하고 그 때마다 n을 3으로 나누면 됩니다. 이 과정을 n이 0이 될 때까지 반복하면 됩니다. 1 n = 45 45 % 3 = 0 45 / 3 = 15 2 n = 15 15 % 3 = 0 15 / 3 = 5 3 n = 5 5 % 3 = 2 5 / 3 = 1 4 n = 1 1 % 3 = 1 1 / 3 = 0 이렇게 구한 나머지 값들을 아래부터 순서대로 나열하면 3진법이 됩니다. (1200) 단, 우리는 3진법을 뒤집어야 하니 아래부터 순서대로 나열하지 말고 위에서부터 순서대로 나열하면 됩니다..

Algorithm/Java 2022.07.04

프로그래머스 - 예산 java :: Summer/Winter Coding(~2018) :: 12982

문제 링크 코딩테스트 연습 - 예산 | 프로그래머스 (programmers.co.kr) 문제 풀이 최대한 많은 부서에 지원을 해줄 수 있는 &#39;수&#39;를 구하는 문제입니다. d를 정렬 후 순서대로 탐색하며 budget을 초과하지 않을 만큼의 수만 구하면 됩니다. 1번 풀이 public int solution(int[] d, int budget) { Arrays.sort(d); int count = 0; for(int num : d) { budget -= num; if(budget < 0) break; count++; } return count; } 입력 배열 d를 정렬 후 순서대로 탐색합니다. 순서대로 탐색하며 해당 금액을 budget에서 빼줍니다. 만약 뺐는데 budget이 0보다 작아지면 예..

Algorithm/Java 2022.07.04

프로그래머스 - 두 개 뽑아서 더하기 java :: 월간 코드 챌린지 시즌1 :: 68644

문제 링크 코딩테스트 연습 - 두 개 뽑아서 더하기 | 프로그래머스 (programmers.co.kr) 문제 이해하기 배열 numbers에 있는 수의 1vs1 덧셈조합을 찾는 문제입니다. 단, 중복이 없어야 하고 오름차순 정렬이 되어야 한다는 게 포인트네요. 중복이 없어야 하니 Set을 사용하면 쉽게 풀 수 있을 거라 생각했고 그 중에서도 TreeSet을 이용하면 정렬까지 되니까 자바로는 아주 쉬운 문제였네요. 문제 풀이 코드 1 public int[] solution(int[] numbers) { Set set = new TreeSet(); for(int i=0; i

Algorithm/Java 2022.07.04

프로그래머스 - 2016년 java

12901번 https://programmers.co.kr/learn/courses/30/lessons/12901?language=java 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 풀이 ✔️ 윤년이란 2월이 29일까지 있는 날입니다. 풀이1 public String solution2(int a, int b) { String[] days = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED" }; int[] numberOfDay..

Algorithm/Java 2022.07.03

프로그래머스 - 나머지가 1이 되는 수 찾기 java :: 월간 코드 챌린지 시즌3

87389번 https://programmers.co.kr/learn/courses/30/lessons/87389?language=java 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 풀이 풀이1 public int solution(int n) { int answer = 0; for(int i=2; i n % i == 1).min().getAsInt(); } 너무 쉬운 문제라 이렇게만 끝내면 아쉬워서 Stream으로도 하나 풀어봤어요. 아무래도 2~n까지 전부..

Algorithm/Java 2022.07.02

프로그래머스 - [1차] 비밀지도 java :: 2018 KAKAO BLIND RECRUITMENT

17681번 https://programmers.co.kr/learn/courses/30/lessons/17681?language=java 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 이 예시만 봐도 문제의 핵심을 알 수 있습니다. 문제의 핵심을 OR 연산 입니다. 두 이진수의 or 연산은 하나라도 참일 경우 참으로 인지하기 때문에 결과와 같은 값을 구할 수 있습니다. 1 or 0 = 1 0 or 1 = 1 비트 연산만 알고 있다면 쉽게 풀 수 있는 문제입니다. 풀이 class Solution..

Algorithm/Java 2022.07.02

프로그래머스 [1차] 다트 게임 java :: 2018 KAKAO BLIND RECRUITMENT

17682번 코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 풀이 사실 옵션만 잘 구분하면 되는 문제이기는 한데 주의할 점이 몇 개 있습니다. ✔ 숫자는 0~9 까지만 오는 게 아니라 10도 올 수 있다. ✔ 옵션 *, #은 있을 수도 있고 없을 수도 있다. ✔ 옵션 *은 현재 점수뿐만 아니라, 이전 점수까지 영향을 준다. 그래서 이전 점수가 있는지 없는지부터 체크해야 한다. 풀이1 public int solution2(String dartResult) { Stack stack = new Stack(); for (int i = 0; i < dartResult.length(); i++) { c..

Algorithm/Java 2022.07.01

프로그래머스 - 나누어 떨어지는 숫자 배열 java

12910번 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 풀이 나누어 떨어지는 ▶ 나누어서 나머지가 0이 나오는 요소만 찾기! ✔ 주의할 점은 배열은 나누어 떨어지는 요소가 없으면 배열에 { -1 } 을 담아 리턴해야 한다는 점입니다. 그리고 이 나누어 떨어진 값들도 정렬을 해야 합니다. 풀이1 public int[] solution(int[..

Algorithm/Java 2022.07.01

프로그래머스 - 문자열 내 마음대로 정렬하기 java

12915번 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 풀이 인덱스 번호=n 의 문자를 비교하는 문제인데, ✔ 주의할 점은 문자가 같을 경우에는 문자열 전체를 비교해야 한다는 점입니다. 풀이1 public String[] solution3(String[] strings, int n) { Arrays.sort(strings, (s1, s2)..

Algorithm/Java 2022.07.01

프로그래머스 - 문자열 내림차순으로 배치하기 java

12917번 코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr 풀이 ✅ 대문자는 소문자보다 작은 것으로 간주한다. => 코드 상에서 문자 비교 시 기본으로 대문자가 소문자보다 작다. ex) 'A' < 'a' 풀이1 public String solution(String s) { char[] array = s.toCharArray(); Arrays.sort(array); return ne..

Algorithm/Java 2022.06.29
반응형