[JAVA] 백준 11720: 숫자의 합

바위너구리·2022년 11월 22일
0

백준 풀이🐬

목록 보기
1/17
post-thumbnail

문제

백준 11720: 브론즈 2
https://www.acmicpc.net/problem/11720

풀이

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
  
    Scanner in = new Scanner(System.in);
    int a = in.nextInt();
    String b = in.next();
    int sum = 0;

    for (int i = 0; i < b.length(); i++) {
      int num_b = Integer.parseInt(String.valueOf(b.charAt(i)));
      sum += num_b;
    }
    System.out.println(sum);
  }
}
  }
}

[Do it! 자바 코딩테스트 알고리즘 자바편]

과정

1. 문제 분석 & 풀어보기
1) 문자열로 입력값 받고 -> String으로 저장
2) 문자 배열로 변환하고 -> char []로 변환
3) 문자 배열값을 순서대로 읽으면서 -> for문
4) 숫자로 변환해서 -> 아스키코드 연산
5) 더해야한다. -> 결괏값에 누적

🌵 문자열을 숫자로 변경하려면 아스키코드를 이해해야 한다.
같은 의미의 문자와 숫자의 코드 값 차이는 48이다.
ex) 문자 '1'의 아스키코드 값은 49, '0'은 48
문자 '1'을 숫자 1로 변환하려면, '1'-48, 또는 '1'-'0'으로 연산

2. 슈도코드

N 입력 받기
길이 N의 숫자를 입력받아 String sNum에 저장
char [] cNum에 sNum 변환해서 저장
int sum = 0;

for (cNum의 길이) {
	cNum[i] int로 바꿔서 += sum
}

sum 출력

3. 코드

    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    String sNum = sc.next();
    char[] cNum = sNum.toCharArray();
    int sum = 0;
    for (int i = 0; i < cNum.length; i++) {
      sum += cNum[i] - '0';  // 정수형으로 변환
    }
    System.out.println(sum);

다른 사람의 풀이

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		char[] numbers = br.readLine().toCharArray();
		int total = 0;
		
		for (int i = 0; i < N; i++) {
			total += Integer.parseInt(String.valueOf(numbers[i]));
		}
		System.out.println(total);

BufferedReader를 이용해봐야겠다.


추가

자바 형변환(String↔숫자형, String↔char)

next(), nextLine()의 차이
https://devlog-wjdrbs96.tistory.com/80


여담

22.11.21
자바 적응하기 어렵다ㅎ ㅎ

0개의 댓글