반응형
평소에 자주 사용하던 언어는 Java, JavaScript이며,
옛날에는 취업준비할떄 몇 번 했었는데 다시 해보려고한다. 그래서 LV.1부터 시작하기로 마음을 먹었다.
합격률이 높은 Lv.1부터 찾아봤는데 생각을 해서 풀어야 한다. 은근어렵다,, 큰일났다. 그런데 또 재밌다 한번 문제를 알아보자

N의 값은 문자열을 더한 1+2+3 = 123 숫자를 더한 1+2+3 =6 이렇게 예시가 나온다. 먼저 숫자를 문자열로 변환을 해야한다. for문 while문 등 여러 방법이 있지만 내 스타일로 해봤다.
1. Step1 String,valueOf(n) -> 숫자를 문자열로 변환
import java.util.*;
public class Solution {
public int solution(int n) {
return String.valueOf(n); // Step1 우선은 문자열로 변환을한다.
}
}
2.Step 2 String.valueOf(n).chars() -> Intstream으로 반환 후 각 문자를 유니코드 정수 값으로 제공을 한다.
import java.util.*;
public class Solution {
public int solution(int n) {
return String.valueOf(n) // Step1 우선은 문자열로 변환을한다.
.chars(); // Step2 유니코드 정수 값으로 제공받을 수 있게 반환
}
}
3. Step 3 String.valueOf(n).chars().map(uni -> uni - '0') 문자 '0'의 아스키 코드인 (48)을 뺴서 숫자로 변환한다.
import java.util.*;
public class Solution {
public int solution(int n) {
return String.valueOf(n) // Step1 우선은 문자열로 변환을한다.
.chars(); // Step2 유니코드 정수 값으로 제공받을 수 있게 반환
.map(uni -> uni - '0'); // Step3 문자 '0'의 아스키코드(48)을 뺴고 숫자로 다시 변환
}
}
Java에서 char는 내부적으로 정수(유니코드 값) 로 저장된다.
문자유니코드(10진수)
| '0' | 48 |
| '1' | 49 |
| '2' | 50 |
| '9' | 57 |
4.Step 4 String.valueOf(n).chars().map(uni->uni - '0').sum() 자릿수합 그리고 ;을 선언하여 stream을 종료한다
import java.util.*;
public class Solution {
public int solution(int n) {
return String.valueOf(n) // Step1 우선은 문자열로 변환을한다.
.chars(); // Step2 유니코드 정수 값으로 제공받을 수 있게 반환
.map(uni -> uni - '0'); // Step3 문자 '0'의 아스키코드(48)을 뺴고 숫자로 다시 변환
.sum(); // Step4 합을 더하고 stream을 종료한다.
}
}

// 예제
char ch = '5';
int num1 = ch - '0'; // 5
int num2 = ch; // 53 (유니코드 값)
//ch = '0' = 48
//ch = '1' = 49
//ch = '2' = 50
//ch = '3' = 51
//ch = '4' = 52
//ch = '5' = 53
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 평균 구하기 Lv1 (0) | 2025.12.16 |
|---|---|
| [프로그래머스] 짝수와 홀수 Lv1 (0) | 2025.12.16 |