공부하기/백준

[Java] 백준 풀기 10821 - 정수의 개수

XEV 2023. 2. 13. 23:32

자바 백준 10821번

브론즈 2

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

 

10821번: 정수의 개수

숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 정수의 개수를 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 문자열, 파싱

 

 

 

 

 

문제 풀기

각각의 정수들은 " , " 로 서로 구분지어져 있기 때문에 " , " 의 개수에 +1 을 하여 총 정수의 개수를 찾을 수 있다.

주어진 문자열에서 " , " 의 개수를 구하기 위해서 각 문자를 char 타입으로 저장한 후 하나씩 빼내어 " , " 와 같은지 비교한다. 이때, char 타입의 비교는 ASCII 코드로 변환하여 그 값과 같은지 비교한다.

참고로 " , " == 44, " 0 " == 48 이기 때문에 ' , ' - ' 0 ' == -4 를 기준으로 같은지 다른지를 비교한다.

https://ko.wikipedia.org/wiki/ASCII

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        char[] arr = sc.next().toCharArray();
        int count = 1;
        for (char a : arr) {
            if (a - '0' == ',' - '0') { // char 을 ASCII 코드로 바꿔 같은 번호인지 비교.
                count += 1;
            }
        }
        
        System.out.print(count);
    }
}