Rev Notebook

[B2] 백준 2577 숫자의 개수 - Java

by Rev_

https://www.acmicpc.net/problem/2577

 

2577번: 숫자의 개수

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.

www.acmicpc.net

[코드]

import java.util.*;

// 숫자의 개수
public class Main {`
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int number = (sc.nextInt() * sc.nextInt() * sc.nextInt());
        String str = Integer.toString(number); // str = '17037300'
        sc.close();

        for (int i = 0; i < 10; i++) {
            int cnt = 0;
            for (int j = 0; j < str.length(); j++) {
                // 한 char 을 숫자로 바꿀때는 '1' - '0' 과 같이
                // Ascii 의 차이값으로 구할 수 있다.
                if ((str.charAt(j) - '0') == i) {
                    cnt++;
                }
            }
            System.out.println(cnt);
        }
    }
}

받아온 정수값을 문자열로 변환해주었다. String 문자열 자체가 char의 배열 형태로도 볼 수 있기 때문에 각각의 숫자를 따로 가져올 수 있다.

또한 String.charAt(i) - '0'을 사용하여 char to int의 변환이 가능하기 때문에 유용하다.

 

String 문자열을 Char 배열로 - charAt()

string 문자열은 char 배열로도 볼 수 있다.

charAt() 함수는 string 타입의 문자열에서 특정 문자를 char 타입으로 변환할 때 사용하는 함수이다.

String s = "abcde";
System.out.println(s.charAt(1));

결과값은 index 1인 'b'를 출력하게 된다. 이렇게 string을 배열로 활용할 수 있다.

 

그리고, string 문자열 자체를 배열로 변환하는 방법도 있다.

String s = "hi-rev";
char[] charArr = s.toCharArray();
System.out.println(Arrays.toString(charArr));

결과값은 [h, i, -, r, e, v] 이 나오게 된다.

toCharArray()를 사용하면 문자열을 바로 배열로 만들 수 있다.

 

[Reperence]

https://st-lab.tistory.com/45

https://hianna.tistory.com/542

 

'PS > PS' 카테고리의 다른 글

[S1] 백준 1149 RGB거리 - Java  (0) 2022.09.19
[B4] 백준 11720 숫자의 합 - Java  (0) 2022.08.11
[S5] 백준 4673 셀프 넘버 - Java  (0) 2022.08.09
[B4] 백준 15552 빠른 A+B - Java  (0) 2022.08.03
[B3] 백준 2588 곱셈 - Java  (0) 2022.07.31

블로그의 정보

Hi Rev

Rev_

활동하기