Algorithm 알고리즘/BAEKJOON 백준

[BAEKJOON] [문자열1]- A-숫자의 합(11720번)

개복치96 2022. 10. 21. 18:23
반응형

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

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

오늘은 백준 11720번 문자열1의 숫자의 합 문제 코드 리뷰이다.
나는 아직 파이썬 문법에 적응이 많이 되지 않은 것 같다.
어떻게는 악으로 깡으로 문제를 풀긴했는데, 코드 리뷰 해주는 멘토로 여기는 친구가 피드백을 해주기를
'파이썬이 아니라 C로 짠거 같은데?'라고 하더라고..

좀 많이 슬펐지만 내가 못하는건 사실인걸...
그래서 피드백와 코드 리뷰 및 정리가 꼭 필요하다고 느꼈다.
무작정 문제를 풀어봐야, 알고리즘은 푸는 방식도 여러개기에 내 실력이 늘지 않는 것 같다.
내가 어떻게 생각을 해서 문제를 해결했는지 확인하고,
다른 사람의 코드를 분석해보고, 나와는 무엇이 다른지 확인하고,
그러면서 내 코드도 다시한번 고쳐보는 시간을 가져야하겠다.

그러니까
한마디로, 오답노트 만든다는 이야기이다.


오늘 이 게시물을 시작으로 앞으로 꾸준히 남겨보려고 한다.
지금 포트폴리오, 자소서, 지원, 코테, 어학 등등 매우 할게 많지만,
코테 준비가 가장 우선이라고 생각한다.

자, 시작한다.

 내가 푼 코드이다.

티스토리에서 줄 번호를 출력해보려고 무던히 애를 써봤지만... 안된다.
그래거 결국에 vscode 확장 프로그램인 carbon-now-sh 로 코드를 넣고있다.
줄 번호가 있어야 코드 리뷰가 편할 것 같아서..
언젠간 티스토리에 꼭 적용 해봐야지
혹시나 하잘것 없지만 내가 쓴 코드가 필요할 수도 있으신 분들을 위해 글 하단에 깃헙 주소를 올려 놓겠다.
참고하시길.

이 문제에서 요지는 문자열이 그것 그대로 리스트로 사용될 수 있는지를 물어보는 문제라고 생각된다.
문자가 입력이 되었을때 문자열에서 그 하나하나의 자리에 들어가 있는 문자가 리스트의 하나의 원소인걸 아는지 물어보는 문제이다.
(말이 좀 이상한가..?)

다시말에 a = '1234' 라고 저장되면
a[1] 은 2, a[3]은 4인 것이다.

이걸 알면서도 위에서는 멍청하게 풀었다. (아래 수정본 다시 나온다.)

2번 라인에서 숫자를 입력받고
3번 라인에서 입력 받은 숫자를 map과 list를 사용하여 원소 하나하나를 int 형으로 변환해서 number_list에 넣었다.
여기서 number_list 출력하면 아마 한 원소씩 '1','2'... 이런 식으로 출력이 될 꺼다.

그리고 숫자의 개수를 처음에 N으로 받았으니
5,6번 라인에서 반복문을 통해 그 리스트에 있는것을 하니씩 더해 나갔다.

여기서 number에서 문자열로 받아 온 그 자체가 파이썬에서는 리스트 취급이 된다는 것을 응용하면
아래와 같이 코드가 수정된다.

여기서 3번째 라인을 주석 처리하고
6번 라인을 보면 number자체에 int를 씌워 더하기 전에 int형으로 바꾼 후 더해주었다.

❗️number[i]를 int로 감싸지 않으면 아무리 숫자를 입력했어도 문자형으로 처음에 받았기에 실행되지 않는다.
❗️문자열 끼리 더하는 문제에서 그냥 number[i]로 더했다면 숫자들의 합이 구해지는 것이 하닌, 문자열이 늘어나는 형태로 문자열이 더해진다.

 

아래는 내 깃헙 주소이다.
해당 저장소에서 코드 번호를 검색 찾을 수 있다.

https://github.com/Headfish96/Algorithm.git

 

GitHub - Headfish96/Algorithm: Algorithm That I study

Algorithm That I study. Contribute to Headfish96/Algorithm development by creating an account on GitHub.

github.com

반응형