-
백준 뒤집힌 덧셈 1357번(Python, Java)Baekjoon 2020. 1. 17. 20:59728x90반응형
https://www.acmicpc.net/problem/1357
문제를 처음 봤을 때는 파이썬으로 바로 풀 수 있을 것 같은데, 자바로는 쉽지 않겠다 라고 느끼면 문제를 풀었다.
풀이 : 입력을 문자열로 받은 뒤에 자리수마다 짜른 후에 거꾸로 저장을 하고 다시 int 로 형 변환 해서 덧셈을 하면 된다.
1. 뒤집힌 덧셈 with Python
12345678910111213141516171819a,b = map(str, input().split())p = a[-1]; q = b[-1]for i in range(len(a)-1):p+=a[-2-i]for j in range(len(b)-1):q+=b[-2-j]sum = int(p) + int(q)r = str(sum)r = r[-1]for k in range(len(str(sum))-1):r+=str(sum)[-2-k]print(int(r))2. 뒤집힌 덧셈 with Java
123456789101112131415161718192021222324252627282930313233import java.util.Scanner;public class ReverseAdd {public static void main(String[] args) {Scanner input = new Scanner(System.in);String a = input.next();String b = input.next();String p = "";String q = "";String r = "";for (int i = a.length()-1; i >=0; --i) {//p.append(a.charAt(i));p += a.charAt(i);}for (int j = b.length()-1; j >=0; --j) {//q.append(b.charAt(j));q += b.charAt(j);}int sum = Integer.parseInt(p) + Integer.parseInt(q);String result = String.valueOf(sum);for (int d = result.length()-1; d >= 0; --d) {r += result.charAt(d);}System.out.println(Integer.parseInt(r));}}s 자바로 풀면서 이걸 이럴 때 쓰는구나를 좀 더 잘 알게되어서 정리하려고 한다. 문제를 풀 때 문자열로 입력을 받아서 거꾸로 뒤집고 다시 덧셈을 하여야 하는데 자바는 덧셈을 어떻게 해야할까? 라는게 내가 문제를 푸는 핵심이었다
1. Integer.parseInt(String s)
이 메소드는 인자 문자열 s를 int 형으로 반환해준다. 이걸 풀면서 확실히 아는 것과 쓸 줄 아는건 엄청난 차이라고 느꼈다. paseInt를 많이 보기는 했지만 이럴때 제대로 사용할 생각을 못했기 때문이다.
123public static int parseInt(String s) throws NumberFormatException {return parseInt(s,10);}그리고 parseInt의 내부코드는 위와 같이 되어 있으므로 인자값에 StringBuffer나 StringBuilder 형은 들어갈 수 없다.
2. String.valueof(int i)
https://docs.oracle.com/javase/7/docs/api/
valueof 메소드는 처음 봤기 때문에 자바 API 문서를 확인해봤다.
valueof 메소드는 위와 같은데 한마디로 말하면 인자값 정수를 문자열로 바꾸어 return 한다는 것이다.
이런 개념들을 알면 문제를 쉽게 풀 수 있다.
반응형'Baekjoon' 카테고리의 다른 글
백준 2164번 카드2 (Python, Java) (0) 2020.01.20 백준 1181번 단어 정렬(Java) (0) 2020.01.18 백준 베스트셀러 1302번(Python, Java) (0) 2020.01.15 백준 1157번 단어공부(Python, Java) (0) 2020.01.15 백준 1152번 단어의 개수(Python, Java) (0) 2020.01.15