안녕하세요, 작가 J입니다. 이번에는 숫자를 입력받아 해당 숫자를 대시('_') 문자로 출력할 때 사용되는 대시의 개수를 계산하는 프로그램을 작성해 보겠습니다. 이 예제는 조건문을 활용하여 특정 조건에 따라 값을 누적하는 방법을 이해하는 데 도움이 됩니다.
[Java Festival 25] 숫자에 사용되는 대시('-')의 개수 계산하기
그림과 같이 대시('-') 문자로 구성된 형태의 숫자를
주어진 숫자와 같이 출력하고 싶을 때 사용되게 되는
대시의 개수를 출력하는 프로그램을 작성하라
코드 풀이 1: 조건문을 사용한 방식
package Ex;
import java.util.Scanner;
public class Ex25 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 숫자를 입력받기
System.out.print("첫자리 0을 제외한 숫자를 입력해주세요 >> ");
String[] str = sc.next().split("");
int sum = 0;
// 각 숫자에 대한 대시 개수를 계산하여 합산
for (String string : str) {
switch (string) {
case "1":
sum += 2;
break;
case "2":
case "3":
case "5":
sum += 5;
break;
case "4":
sum += 4;
break;
case "6":
case "9":
case "0":
sum += 6;
break;
case "7":
sum += 3;
break;
case "8":
sum += 7;
break;
}
}
// 결과 출력
System.out.println("대시('-')의 총 합 >> " + sum);
sc.close();
}
}
1. 사용자 입력 받기
- System.out.print("첫자리 0을 제외한 숫자를 입력해주세요 >> ");
- 사용자가 입력한 숫자를 문자열 배열로 변환하여 str에 저장합니다.
2. 대시의 개수 계산
- for (String string : str) { ... }
- 각 숫자에 대해 switch 문을 사용하여 대시의 개수를 누적합니다.
3. 결과 출력
- System.out.println("대시('-')의 총 합 >> " + sum);
코드 풀이 2: 배열을 사용하여 대시의 개수 저장
package Ex;
import java.util.Scanner;
public class Ex25Alternative {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 숫자를 입력받기
System.out.print("첫자리 0을 제외한 숫자를 입력해주세요 >> ");
String input = sc.next();
// 각 숫자에 대응하는 대시의 개수를 배열로 저장
int[] dashCount = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int sum = 0;
// 입력된 각 숫자에 대해 대시의 개수를 합산
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i); // 입력된 문자열에서 각 문자를 가져오기
int index = Character.getNumericValue(c); // 문자를 숫자로 변환하여 배열 인덱스로 사용
sum += dashCount[index];
}
// 결과 출력
System.out.println("대시('-')의 총 합 >> " + sum);
sc.close();
}
}
1. 대시의 개수 계산
- int[] dashCount = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};: 각 숫자에 대응하는 대시의 개수를 저장한 배열을 선언합니다.
- for (int i = 0; i < input.length(); i++) { ... }
- 입력된 문자열에서 각 문자를 가져와 Character.getNumericValue를 사용하여 숫자로 변환한 후, 해당 인덱스의 대시 개수를 누적합니다.
마무리
이번 예제에서는 숫자를 입력받아 해당 숫자를 대시('_') 문자로 출력할 때 사용되는 대시의 개수를 계산하는 두 가지 방법을 다뤄보았습니다. 첫 번째 방법은 조건문을 사용한 방식이며, 두 번째 방법은 배열을 사용하여 대시의 개수를 저장한 후, 문자열의 각 문자를 숫자로 변환하여 배열 인덱스로 사용하는 방식입니다. 두 가지 방법 모두 이해하시는데 도움이 되길 바랍니다.
프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!
'프로그래밍 기초 > Java Festival' 카테고리의 다른 글
[Java Festival] 27. Java 시험 문제 채점하기 (0) | 2024.07.05 |
---|---|
[Java Festival] 26. 세 자리 수의 곱셈 계산 (0) | 2024.07.05 |
[Java Festival] 24. N개의 숫자 중 X보다 작은 수만 출력하기 (0) | 2024.07.04 |
[Java Festival] 23. 2차원 배열 왼쪽으로 90도 회전하기 (0) | 2024.07.04 |
[Java Festival] Bonus05. 정수 오름차순 정렬하기 (0) | 2024.07.04 |