-
1/24기록 - 백준 1357Algorithm 2022. 1. 24. 11:02728x90
오늘은 즐겁고 상쾌한지 잘 모르겠는 월요일이다.... 문제를 살펴보다가 제목이 너무 마음에 드는 문제가 있어서 문제를 풀어 보았다. 제목은 다름 아닌 뒤집힌 덧셈 ㅋㅋㅋㅋ. 오늘 뭔가 좀 꼬였는지 자꾸 뒤집고 싶다
각설하고 문제로 들어가보자 어제 했던 글자 뒤집기와 비슷한데 여기서는 숫자를 뒤집어서 덧셈을 하라는 문제이다.
처음 떠올린 방식은 자바에서는 숫자의 경우 문자열로 뒤집고 숫자로 다시 만들어주는 방식을 많이 취하기 때문에 어제와 같이 배열에다가 넣어주는 것을 생각했었다. 하지만 마지막에 덧셈을 해주어야 하기 때문에 굳이 메모리가 많이 먹는 배열을 선언하기 보다는 수식을 통해 Rev() 함수를 만들어서 덧셈을 하는 방식을 택했다.
알고리즘 생각
1. x,y 입력받기
2. Rev함수 만들기
-숫자를 문자열로 담을 String 변수 하나 선언
- 숫자 a가 0보다 큰 범위 안에서 a%10을 해주면 일의 자리 부터 차곡 차곡 뒤집힘
- 예를 들어 123은 123%10 = 3 이므로 다음 작업을 위해서는 123/10을 해서 12라는 수를 새로운 a로 만들어 주어야 함
3. main 함수 안에서 더해주면 끝
수식을 통해서 해결하니 정말 간단하다. 숫자의 경우는 반복문을 돌리고 charAt() 메소드로 하나씩 배열에 넣고 하는 것 보다 수식으로 해결하는 편이 훨씬 간단할 수 있다.
문제를 다 풀고 나서 다른 사람의 풀이를 참고해 보았는데, reverse 메소드를 사용해서 메모리를 더 줄이면서 간단하게 뒤집는 방식도 있었다. 하지만 이전 프로그래머스 sort문제에서 Arrays.sort() 메소드를 사용하여 문제를 풀어 둔 사람들의 댓글에 sort문제인데 sort를 써버리면 문제 의도가 의미가 없지 않냐는 댓글들이 주를 이루어서 뒤집는 경우에서도 웬만하면 메소드를 사용하기 보다 혼자서 본질적으로 구현해 보는 것이 실력 향상에 더 도움이 되지 않을까 싶었다.
1/24 기록 끝!!!!!!!!
728x90'Algorithm' 카테고리의 다른 글
1/26기록 - 백준 1010 (0) 2022.01.26 1/25기록 - 백준 2161 (0) 2022.01.25 1/23기록 - 백준 1259 (0) 2022.01.23 1/22기록 - 백준 4344 (0) 2022.01.22 1/21기록 - 백준 1546 (0) 2022.01.21