[알고리즘문제풀기] 이어 붙인 수

silver's avatar
Feb 16, 2025
[알고리즘문제풀기] 이어 붙인 수

문제

내가 작성한 정답

class Solution { public int solution(int[] num_list) { String o = ""; String e = ""; for(int i : num_list) { if (i % 2 == 1) o += "" + i; else e += "" + i; } return Integer.parseInt(o) + Integer.parseInt(e); } }

다른 사람들의 정답

class Solution { public int solution(int[] num_list) { int answer = 0; int even = 0; int odd = 0; for(int num : num_list) { if(num % 2 == 0) { // 숫자를 자릿수에 맞게 하기 위해 10을 곱한다 -> 문자열로 변경할 필요없음 even *= 10; even += num; } else { odd *= 10; odd += num; } } answer = even + odd; return answer; } }

StreamAPI

import java.util.Arrays; import java.util.stream.Collectors; class Solution { public int solution(int[] numList) { // 홀수 숫자들을 문자열로 변환하고 연결한 후, 정수로 변환 return Integer.parseInt(Arrays.stream(numList) // numList를 스트림으로 변환 .filter(value -> value % 2 != 0) // 홀수만 필터링 .mapToObj(String::valueOf) // 각 홀수를 문자열로 변환 .collect(Collectors.joining())) // 문자열들을 연결하여 하나의 문자열로 만듦 + Integer.parseInt(Arrays.stream(numList) // numList를 스트림으로 변환 .filter(value -> value % 2 == 0) // 짝수만 필터링 .mapToObj(String::valueOf) // 각 짝수를 문자열로 변환 .collect(Collectors.joining())); // 문자열들을 연결하여 하나의 문자열로 만듦 } }
// 위의 코드 짝수와 홀수로 분리 import java.util.Arrays; import java.util.stream.Collectors; class Solution { public int solution(int[] numList) { // 홀수 숫자들을 문자열로 변환하고 연결한 후, 정수로 변환 int oddSum = Integer.parseInt(Arrays.stream(numList) // numList를 스트림으로 변환 .filter(value -> value % 2 != 0) // 홀수만 필터링 .mapToObj(String::valueOf) // 각 숫자를 문자열로 변환 .collect(Collectors.joining())); // 문자열들을 연결 // 짝수 숫자들을 문자열로 변환하고 연결한 후, 정수로 변환 int evenSum = Integer.parseInt(Arrays.stream(numList) // numList를 스트림으로 변환 .filter(value -> value % 2 == 0) // 짝수만 필터링 .mapToObj(String::valueOf) // 각 숫자를 문자열로 변환 .collect(Collectors.joining())); // 문자열들을 연결 // 홀수와 짝수로 만든 두 개의 정수를 더하여 반환 return oddSum + evenSum; } }
Share article

silver