โ ๋ฌธ์
๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋์('_') ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ํํ์ ์ซ์๋ฅผ ์ฃผ์ด์ง ์ซ์์ ๊ฐ์ด ์ถ๋ ฅํ๊ณ ์ถ์ ๋
์ฌ์ฉ๋๋ ๋์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
โ ์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] c = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };
System.out.print("์ฒซ์๋ฆฌ 0์ ์ ์ธํ ์ซ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ >> ");
String nums = sc.nextLine();
int result = 0;
for (int i = 0; i < nums.length(); i++) {
result += c[nums.charAt(i) - 48];
}
System.out.print("๋์('_')์ ์ด ํฉ >> " + result);
sc.close();
}
}
โ ์ถ๋ก ๊ณผ์
1. 0๋ถํฐ 9๊น์ง ๋์์ ์ซ์๋ฅผ ๋ด์์ค ์ ์ํ ๋ฐฐ์ด c๋ฅผ ์ ์ธํ๊ณ ,
2. ๊ฐ ์ซ์์ ๊ฐ์ ๊ฐ์๋ฅผ ์ธ์ด์ ์ธ๋ฑ์ค 0๋ฒ๋ถํฐ 9๋ฒ๊น์ง ๋ฃ์ด์ค๋ค.
3. Stringํ์
์ผ๋ก ์ซ์๋ฅผ ์
๋ ฅ๋ฐ๋๋ค.
4. ๋์ ์ด ํฉ์ ๊ตฌํด์ค ๋ณ์ result๋ฅผ ์ ์ธํ๋ค. ์ฌ๊ธฐ์ ๋์์ ๊ฐ์๋ฅผ +=์ผ๋ก ๋์ ํด์ ํฉ์ ๊ตฌํด ์ค ๊ฒ์ด๋ค.
5. ๋ฌธ์์ด ํ์
์ nums์ ๊ธธ์ด๋งํผ for๋ฌธ์ ๋๋ ค ์ค๋ค.
=> for๋ฌธ ๋ด๋ถ์์๋ ๋ฌธ์์ด๋ก ์
๋ ฅ๋ฐ์ ์ซ์์ ๊ฐ ์๋ฆฌ์ ํด๋นํ๋ ์ ์ ๊ฐ์๋ฅผ ๊ณ์ฐํ๋ค.
nums.charAt(i)๋ ์
๋ ฅ๋ ๋ฌธ์์ด nums์ ์ธ๋ฑ์ค i์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๊ฐ์ ธ์จ๋ค.
์ฌ๊ธฐ์-48์ ํ๋ ์ด์ ๋ ์
๋ ฅ๋ ๋ฌธ์์์ ASCII ์ฝ๋ ๊ฐ์ ์ซ์๋ก ๋ณํํ๊ธฐ ์ํด์์ด๋ค. ์ปดํจํฐ์์ ๋ฌธ์๋ ๋ด๋ถ์ ์ผ๋ก ASCII ์ฝ๋๋ก ํํ๋๋ค. ์ซ์ 0์ ์์คํค์ฝ๋ ๊ฐ์ 48์ด๋ค. ์ด ์์คํค์ฝ๋๊ฐ๋ค์ ์ซ์๋ก ๋ณํํ๊ธฐ ์ํด์๋ ํด๋น ๋ฌธ์์ ์์คํค ์ฝ๋ ๊ฐ์์ 0์ ์์คํค ์ฝ๋ ๊ฐ์ ๋นผ์ฃผ๋ฉด ๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋ฌธ์ '0'์ ์ซ์ 0์ผ๋ก ๋ณํ๋๊ณ , ๋ฌธ์ '1'์ ์ซ์ 1๋ก ๋ณํ์ด ๋๋ค. ์ฆ, nums.charAt(i) - '0'์ ํตํด ๊ฐ ๋ฌธ์๋ฅผ ์ ์๊ฐ์ผ๋ก ๋ณํํ ์ ์๋ค. ์ด๋ ๊ฒ ์ป์ ์ ์๊ฐ์ ๋ฐฐ์ดc์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํด์ ํด๋น ์ซ์๊ฐ ํํ๋๋๋ฐ ํ์ํ ์ ์ ์๋ฅผ ๊ฐ์ ธ์ result์ ๋์ ์์ผ ๋ํด์ค๋ค.
์๋ฅผ ๋ค์ด, ๋ง์ฝ nums๊ฐ "123"์ด๋ผ๋ฉด, nums.charAt(0)์ ๋ฌธ์ '1'์ ๊ฐ์ ธ์ต๋๋ค. ASCII ์ฝ๋์์ '1'์ ๊ฐ์ 49์ด๊ณ , '0'์ ๊ฐ์ 48์
๋๋ค. ๋ฐ๋ผ์ '1' - '0'์ 1์ด ๋๋ค. c[1]์ ์ซ์ 1์ ํํํ๋ ๋ฐ ํ์ํ ์ ์ ์๋ฅผ ๋ํ๋
๋๋ค. ๋ง์ฝ c[1]์ด 2๋ผ๋ฉด, result += 2;๊ฐ ๋๋ค. ์ด ๊ณผ์ ์ ์ซ์ 2์ 3์ ๋ํด์๋ ๋ฐ๋ณตํ์ฌ ์ ์ฒด ์ ์ ์๋ฅผ ๊ณ์ฐํด ๋ณผ ์ ์๋ค.