-
9/20 TIL [프로그래머스 코딩테스트] 4문제프로그래밍/코딩테스트연습 2023. 9. 20. 16:24
배열 뒤집기
하나의 배열(answer)은 인덱스가 순차적으로 올라가며
파라미터로 들어오는 num_list는 인덱스를 역순으로 넣어주었다.
class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; for(int i=0; i<num_list.length; i++){ answer[i]=num_list[num_list.length-1-i]; } return answer; } }
이 문제는 코드가 간결해서 만족스럽다.
다른사람의 풀이
import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.Arrays; class Solution { public int[] solution(int[] numList) { List<Integer> list = Arrays.stream(numList).boxed().collect(Collectors.toList()); Collections.reverse(list); return list.stream().mapToInt(Integer::intValue).toArray(); } }
배열 두배 만들기
class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; for(int i =0; i<numbers.length; i++){ answer[i]=numbers[i]*2; } return answer; } }
딱히 설명할게 없는 난이도다.
짝수 홀수 개수
파라미터의 num_list배열을 반복문과 배열을 통해
짝수일 경우 even을 증가시키고, 홀수일 경우 odd를 증가시킴
그 후 odd, even을 answer 배열에 넣는다
class Solution { public int[] solution(int[] num_list) { int[] answer = new int[2]; int even=0; int odd=0; for(int i=0; i<num_list.length; i++){ if(num_list[i]%2==0){ even++; }else odd++; } answer[0]=even; answer[1]=odd; return answer; } }
다른 사람의 풀이1
class Solution { public int[] solution(int[] num_list) { int[] answer = new int[2]; for(int i = 0; i < num_list.length; i++) answer[num_list[i] % 2]++; return answer; } }
내 코드가 저렇게 요약이 가능했다
다른 사람의 풀이2
import java.util.stream.IntStream; import java.util.Arrays; class Solution { public int[] solution(int[] numList) { return IntStream.of((int) Arrays.stream(numList).filter(i -> i % 2 == 0).count(), (int) Arrays.stream(numList).filter(i -> i % 2 == 1).count()).toArray(); } }
스트림 다시보기
피자 나눠먹기(1)
- i는 피자 수
- n은 인원수
- 판당 7조각이니 7*i 즉 조각수가 사람 수보다 많은 경우 1보다 작은값이 나오게 된다.
- 그것을 반복문으로 표현
- 피자가 15판까지인 이유는 제한조건에서 인원수를 1~100까지로 두었기 때문
class Solution { public int solution(int n) { int answer = 0; double i= 1; for(; i<=15; i++){ if((n/(7*i))<=1){ answer=(int)i; break; } } return answer; } }
다른 사람의 풀이
class Solution { public int solution(int n) { return (n + 6) / 7; } }
...
'프로그래밍 > 코딩테스트연습' 카테고리의 다른 글
약수의 합 (1) 2023.11.09 9/26 TIL [프로그래머스 코딩테스트] 단 한문제 (0) 2023.09.26 9/22 TIL [프로그래머스 코딩테스트] 2문제 (0) 2023.09.22 9/21 TIL [프로그래머스 코딩테스트] 4문제 (0) 2023.09.21 9/19 TIL [프로그래머스 코딩테스트] 최빈값 구하기 (0) 2023.09.19