-
728x90
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]change Nxxxx -> Main && remove package lines!!!
이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에
클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.
<풀이>
123456789101112131415161718192021222324package io;public class N11720 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int sum = 0;for(int i=0; i<n; i++) {sum += str.charAt(i) - '0';}System.out.println(sum);}}이 문제는 조금 헤매서 구글링의 도움을 받아 해결했습니다. ^^;
이 문제에서 핵심은 1) String 자료형으로 입력을 받아,
2) 이를 char 단위로 나누고,
3) 나눈 char 자료형을 int 자료형으로 변환하는
세 가지 프로세스입니다.
첫 번째, String 자료형 입력은 앞선 문제들에서 이미 익숙해졌습니다.
두 번째, 입력받은 String을 char로 나누는 방법은 String.charAt(n) 메서드를 사용하면 됩니다.
charAt(n) 메서드는 String 내의 n번째 위치의 char data를 반환합니다.
세 번째, char data를 덧셈연산에 적용하기 위해 int 자료형으로 변환하는데, 아스키 코드를 이용하면 됩니다.
숫자 '0'의 아스키코드가 48부터 시작해 1씩 늘어나므로 ex) '0'이 48, '1'이 49, '2'가 50...
더보기--보충
char형으로 1을 저장하고 int 자료형으로 출력하게 되면 49가 출력됩니다.
꽤나 중요한 개념이니 꼭 숙지해두시는게 좋습니다.
'0'을 빼주면 int형 변환과 같은 기능을 수행하게 됩니다.
Github: https://github.com/jaeuk9407/AlgorithmBOJ
'Algorithms' 카테고리의 다른 글
[백준 알고리즘] (I/O) 2741번 Java 풀이 (0) 2020.03.05 [백준 알고리즘] (I/O) 11721번 Java 풀이 (0) 2020.03.04 [백준 알고리즘] (I/O) 11719번 Java 풀이 (0) 2020.03.04 [백준 알고리즘] (I/O) 11718번 Java 풀이 (0) 2020.03.04 [백준 알고리즘] (I/O) 11022번 Java 풀이 (0) 2020.03.04 댓글