두 문제를 같이 포스팅한 이유는
- int(정수형) → char(문자형) 변환
- char(문자형) → int(정수형)로 변환
의 차이를 비교하기 위해서이다.
Java에서 문자 ↔ 숫자 간 변환에서 + '0' 또는 - '0'을 사용한다.
이렇게 하는 이유는 문자의 ASCII 코드 값을 이용하는 방식이기 때문이다.
📑 1. int → char 변환
- 프로그래머스 <숫자 찾기> 문제
- https://school.programmers.co.kr/learn/courses/30/lessons/120904

num 안에 숫자 k가 있는지 확인하고, 있으면 자리 수(index + 1), 없으면 -1을 반환하는 solution 함수를 만드는 문제이다.
- String.valueOf(num)으로 숫자를 문자열로 변환
- k + '0'은 숫자를 문자로 바꾸는 방법 (예: 3 → '3')
- i + 1을 반환하는 이유는 자릿수는 1부터 세기 때문이다.
class Solution {
public int solution(int num, int k) {
String numToString = Integer.toString(num);
char[] arr = numToString.toCharArray();
char kToChar = (char) (k + '0');
int idx = -1;
for(int i = 0; i < arr.length; i++ ) {
if (arr[i] == kToChar) {
return i+1;
}
}
return idx;
}
}
int 형 변수를 char 타입으로 변환할 때는 아래와 같이 int형 변수에 '0'을 더한 뒤 전체를 (char) 타입으로 바꾼다.
char kToChar = (char) (k + '0');
📑 2. String → int 변환
- 프로그래머스 자릿수 더하기 문제
- https://school.programmers.co.kr/learn/courses/30/lessons/120906

정수 n의 각 자리 숫자의 합을 구해 반환하는 문제이다.
- 매개변수로 받은 정수를 문자열로 반환하기
- 문자열 각 자리수를 숫자로 변환해서 누적합 구하기
class Solution {
public int solution(int n) {
int sum = 0;
String str = String.valueOf(n); // 정수를 문자열로
for (int i = 0; i < str.length(); i++) {
sum += str.charAt(i) - '0'; // 각 문자를 숫자로 변환 후 더하기
}
return sum;
}
}
char 타입을 int형으로 변환할 때는 아래 코드처럼 char 타입에 -'0'을 한다.
sum += str.charAt(i) - '0'
이 문제는 이렇게 나눗셈을 이용해서 푸는 쉬운 방법도 있다.
class Solution {
public int solution(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10; // 마지막 자리 숫자를 더함
n /= 10; // 마지막 자리 숫자를 제거
}
return sum;
}
}
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[Java] 코딩테스트용 주요 함수/알고리즘 모음 (2) (1) | 2025.05.22 |
---|---|
[Java] 코딩테스트용 주요 함수/알고리즘 모음 (1) (4) | 2025.05.22 |
[프로그래머스] (Java) 문자열 안에 문자열, 제곱수 판별, 세균증식 문제풀이 (3) | 2025.05.22 |
[프로그래머스] (Java) n의 배수 고르기 (2) | 2025.05.20 |
[프로그래머스] (Java) 숫자 찾기 (숫자를 문자로) (2) | 2025.05.20 |
두 문제를 같이 포스팅한 이유는
- int(정수형) → char(문자형) 변환
- char(문자형) → int(정수형)로 변환
의 차이를 비교하기 위해서이다.
Java에서 문자 ↔ 숫자 간 변환에서 + '0' 또는 - '0'을 사용한다.
이렇게 하는 이유는 문자의 ASCII 코드 값을 이용하는 방식이기 때문이다.
📑 1. int → char 변환
- 프로그래머스 <숫자 찾기> 문제
- https://school.programmers.co.kr/learn/courses/30/lessons/120904

num 안에 숫자 k가 있는지 확인하고, 있으면 자리 수(index + 1), 없으면 -1을 반환하는 solution 함수를 만드는 문제이다.
- String.valueOf(num)으로 숫자를 문자열로 변환
- k + '0'은 숫자를 문자로 바꾸는 방법 (예: 3 → '3')
- i + 1을 반환하는 이유는 자릿수는 1부터 세기 때문이다.
class Solution { public int solution(int num, int k) { String numToString = Integer.toString(num); char[] arr = numToString.toCharArray(); char kToChar = (char) (k + '0'); int idx = -1; for(int i = 0; i < arr.length; i++ ) { if (arr[i] == kToChar) { return i+1; } } return idx; } }
int 형 변수를 char 타입으로 변환할 때는 아래와 같이 int형 변수에 '0'을 더한 뒤 전체를 (char) 타입으로 바꾼다.
char kToChar = (char) (k + '0');
📑 2. String → int 변환
- 프로그래머스 자릿수 더하기 문제
- https://school.programmers.co.kr/learn/courses/30/lessons/120906

정수 n의 각 자리 숫자의 합을 구해 반환하는 문제이다.
- 매개변수로 받은 정수를 문자열로 반환하기
- 문자열 각 자리수를 숫자로 변환해서 누적합 구하기
class Solution { public int solution(int n) { int sum = 0; String str = String.valueOf(n); // 정수를 문자열로 for (int i = 0; i < str.length(); i++) { sum += str.charAt(i) - '0'; // 각 문자를 숫자로 변환 후 더하기 } return sum; } }
char 타입을 int형으로 변환할 때는 아래 코드처럼 char 타입에 -'0'을 한다.
sum += str.charAt(i) - '0'
이 문제는 이렇게 나눗셈을 이용해서 푸는 쉬운 방법도 있다.
class Solution { public int solution(int n) { int sum = 0; while (n > 0) { sum += n % 10; // 마지막 자리 숫자를 더함 n /= 10; // 마지막 자리 숫자를 제거 } return sum; } }
'코딩테스트 > JAVA테스트' 카테고리의 다른 글
[Java] 코딩테스트용 주요 함수/알고리즘 모음 (2) (1) | 2025.05.22 |
---|---|
[Java] 코딩테스트용 주요 함수/알고리즘 모음 (1) (4) | 2025.05.22 |
[프로그래머스] (Java) 문자열 안에 문자열, 제곱수 판별, 세균증식 문제풀이 (3) | 2025.05.22 |
[프로그래머스] (Java) n의 배수 고르기 (2) | 2025.05.20 |
[프로그래머스] (Java) 숫자 찾기 (숫자를 문자로) (2) | 2025.05.20 |