2745๋ฒ: ์ง๋ฒ ๋ณํ (acmicpc.net)
1. ๋ด ์ฝ๋
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
// ์
๋ ฅ๊ฐ, ์ง๋ฒ ๋ฐ๊ธฐ
String s = sc.next();
int numeral = sc.nextInt();
// ์ดํฉ
int total = 0;
// ๊ณ์ ์ง๋ฒ์ ๊ณฑํด๋๊ฐ ์ง์
int numeralQuotient = 1;
// String์ผ๋ก ๋ฐ์ ๊ฐ ์ชผ๊ฐ๊ธฐ.
// ๋ง์ฝ์ ์ชผ๊ฐ์ง ๋ฌธ์๊ฐ 1~9 ์ฌ์ด๋ผ๋ฉด, ๊ทธ๋๋ก ๊ฐ ๋ฐ์์ ์ฌ์ฉ
// ๋ง์ฝ์ ์ชผ๊ฐ์ง ์ซ์๊ฐ 65~90 ์ฌ์ด๋ผ๋ฉด -55 ํด์ ์ฌ์ฉ
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) - '0' >=0 && s.charAt(i) - '0'< 10){
list.add(s.charAt(i)-'0');
}
else{
list.add(s.charAt(i)-55);
}
}
for (int i = list.size()-1; i >= 0 ; i--) {
total += list.get(i)* numeralQuotient;
numeralQuotient *=numeral;
}
System.out.println(total);
}
}
2. ๋ฐฐ์ด ๊ฒ
char -> int ํ ๋ณํ์ ์ด๋ป๊ฒ ํ๋์ง ๊น๋จน์์๋ค.
String์ ๊ฒฝ์ฐ String์ ์ ํ ๋ด์ฉ ๊ทธ๋๋ก๋ฅผ 10์ง๋ฒ์ผ๋ก ๋ฐ๊พธ๊ธธ ์ํ๋ค๋ฉด, Integer.parseInt(๊ฐ, ์ง๋ฒ)์ผ๋ก ํ๋ฉด ๋๋ค.
char์ ๊ฒฝ์ฐ ๋ฐฉ๋ฒ์ด 3๊ฐ์ง ์ด๋ค.
1. (int)๋ก ๊ฐ์ ํ๋ณํ
char c = 'A'
int a = (int)c
// a ์ถ๋ ฅ ์, 65๊ฐ ๋์จ๋ค.
๋ง์ฝ์ char ๊ฐ์ ์์คํค ์ฝ๋ ๊ฐ ์์ฒด๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ด ์ฉ์ด ํ๋ค.
2. char ํํ๋ก ์ ํ ์ซ์ 0~9๋ฅผ ๊ทธ ๋ด์ฉ๋ฌผ ๊ทธ๋๋ก int๋ก ๋ฐ๊พธ๋ ๋ฒ
char c = '9'
int a = c - '0'
// a ์ถ๋ ฅ ์ 9๊ฐ ์ถ๋ ฅ๋๋ค.
c๋ '9'๋ผ๋ ๋ฌธ์ ๊ฐ์ธ๋ฐ ์์คํค ์ฝ๋ ์ 57์ด๋ ๊ฐ์ ๊ฐ์ง๋ค. ๋ฐ๋ผ์ '0'์ ์์คํค ์ฝ๋์ธ 48์ ๋นผ์ฃผ๋ฉด ์๋ ๊ฐ 9๊ฐ ๋์จ๋ค.
char ๊ฐ ๋ผ๋ฆฌ ์ฌ์น ์ฐ์ฐ์ ์งํํ๋ฉด, ํด๋น char ๊ฐ์ ์์คํค ์ฝ๋๋ก ๊ณ์ฐ์ด ์ด๋ฃจ์ด์ ธ์, ์ซ์ ๊ฐ์ด ๋์ถ๋๋ค๋ ๊ฒ์ ์ด์ฉํ๋ค.
char ๊ฐ๋ผ๋ฆฌ ํน์ char ์ int ๊ฐ ์ฌ์ด์ ์ฌ์น์ฐ์ฐ์ ์งํํ๋ฉด ๊ฒฐ๊ณผ๋ int ๊ฐ ์์ ์ดํดํ์.
3. Character๋ผ๋ Wrapper Class์ ํจ์์ธ getNumericValue ์ด์ฉํ๊ธฐ
char c= '9'
int a = Character.getNumericValue(c)
// a ์ถ๋ ฅ์ ๊ฐ์ 9๊ฐ ๋์จ๋ค.
ํด๋น ํ์ ์ด์ฉ ์ ๋ด์ฉ๋ฌผ ์์ฒด๊ฐ ์ซ์๋ก ๋์จ๋ค.