반응형

자바 58

프로그래머스 - 내적 java :: 월간 코드 챌린지 시즌1

70128번 https://school.programmers.co.kr/learn/courses/30/lessons/70128?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 그냥 각 인덱스를 곱한 후 더하는 문제라 별도 설명은 안하고 stream 풀이와 정석 풀이를 남기고 끝내겠습니다. 풀이1 public int solution2(int[] a, int[] b) { return IntStream.range(0, a.length).map(i -> a[i] * b[i]).sum(); } ✔️ 테스트 케이스 처리속도: 평균 3.5..

Algorithm/Java 2022.07.06

프로그래머스 - 완주하지 못한 선수 java :: 해시 :: 42576

문제 링크 코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스 스쿨 (programmers.co.kr) 문제 풀이 주의할 점 동명이인이 있을 수 있기 때문에 remove 같은 메소드로는 정답을 구할 수 없습니다. 1번 풀이 public String solution(String[] participant, String[] completion) { String answer = new String(); HashMap map = new HashMap(); for(String runner : participant) map.put(runner, map.getOrDefault(runner, 0) + 1); for(String runner : completion) map.put(runner, map.get(runne..

Algorithm/Java 2022.07.05

프로그래머스 - K번째수 java :: 정렬

42748번 코딩테스트 연습 - K번째수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 ▶ 주의할 점 ✔ i, j, k 모두 인덱스보다 1이 크다. ✔ i와 j로 새로 만든 배열을 정렬 후 k번째 수를 구해야 한다. 풀이1 public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for(int m = 0; m

Algorithm/Java 2022.07.05

프로그래머스 - 체육복 java :: 탐욕법(Greedy) :: 42862

문제 링크 코딩테스트 연습 - 체육복 | 프로그래머스 스쿨 (programmers.co.kr) 문제 풀이 보통 이런 문제들을 보면 정답의 기준에서 찾는 것보다 정답이 아닌 것을 기준으로 보고 푸는 게 효율이 좋더라구요. 모두가 체육복을 가지고 있다고 가정하고, 없는 사람을 제거하는 방식으로 풀었습니다. public int solution(int n, int[] lost, int[] reserve) { int[] haves = new int[n+2]; // 0번째 인덱스와, 마지막 인덱스는 비워두는 용도 int answer = n; for(int l : lost) haves[l]--; for(int r : reserve) haves[r]++; for(int i=1; i 0) { haves[i]++; hav..

Algorithm/Java 2022.07.05

프로그래머스 - 모의고사 java :: 완전탐색

42840번 코딩테스트 연습 - 모의고사 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 뭔가 공식이 있는 문제는 아니고, 코드를 얼마나 효율적으로 짜는지가 중요한 문제 같습니다. 풀이1 public int[] solution(int[] answers) { // 수포자 패턴 int[][] supoja_pattern = { { 1, 2, 3, 4, 5 }, { 2, 1, 2, 3, 2, 4, 2, 5 }, { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 } }; // 정답수 구하기 List..

Algorithm/Java 2022.07.05

프로그래머스 - 폰켓몬 java :: 찾아라 프로그래밍 마에스터

1845번 코딩테스트 연습 - 폰켓몬 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 풀이 문제의 설명은 긴데 핵심은 하나입니다. 중복되지 않은 수를 구하되 (nums / 2) 이하여야 한다는 것입니다. 풀이1 public int solution(int[] nums) { return Math.min(nums.length / 2, IntStream.of(nums).boxed().collect(Collectors.toSet()).size()); } IntSt..

Algorithm/Java 2022.07.04

프로그래머스 - 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
반응형