코딩테스트 연습 기록

이종길·2021년 12월 21일
0

코딩테스트 연습

목록 보기
3/128

2021.12.21 1일차

백준 2577번 (숫자의 개수)

문제

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

나의 풀이

  1. a, b, c 입력 받기, sum = a b c
  2. sum String으로 변환
  3. for문 활용, charAt(0) - '0' 으로 값 구하기
  4. 나온 값마다 인덱스로 활용하여 더하기
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        int sum = a * b * c;

        int[] numArr = new int[10];
        String sumStr = String.valueOf(sum);

        for (int i = 0; i < sumStr.length(); i++) {
            numArr[(int)sumStr.charAt(i) - '0']++;
        }

        for(int x:numArr) {
            System.out.println(x);
        }
    }
}

생각하기

  • String 변환 불필요, whlie 문과 10씩 나누기, 나머지 활용 가능
  • char 관련
char에서 숫자로 변환하기
  1. char '0' 빼기
  2. Character.getNumericValue(ch) 사용
숫자에서 char로 변환하기
  1. Integer.toString(i).charAt(0)
  2. Character.forDigit(digit, radix) 사용
문자열에서 char로 변환하기
  1. toCharArray()
profile
Go High

0개의 댓글

관련 채용 정보