코테 준비를 하나도 안하고 코테에 털렸음으로 그냥 한 두개씩 코테 관련글도 천천히 올려볼까 한다.....
iOS나 Flutter만 하는 프론트엔드라도 기본적인 알고리즘을 구현하고 해결하는 능력을 갖추고 있을 필요성을 느꼈다고나 할까?
그래서 공부는 일단 프로그래머스 lv.1부터 진행할 예정이며 당장의 목표는 lv.3까지 진행해볼 생각이다.
얼마나 걸릴지 모르지만 일단 이것도 꾸준히 해야지....
일단 언어는 Python3를 사용할 예정이다.
파이썬이 그나마 쉬우면서도 지원되는 라이브러리나 함수가 많기 때문에 코테를 공부할 때 가장 추천하는 언어이기 때문이다.

일단 자연수 N의 범위는 100,000,000 이하의 자연수라고한다.
설명을 보면 자연수의 각 자릿수의 합을 구하라고 하는데 자연수의 각 자릿수를 나누는 방법을 생각하는게 문제의 핵심인 것 같다.
글을 쓰면서 생각나는 방법은 두 가지 정도가 있는데,
공부할 겸 두가지 모두 작성을 해 보자
def solution(n):
numbers = []
while(n != 0):
numbers.append(n%10) # 나머지를 numbers에 추가한다.
n = n // 10 # 몫을 다시 n 에 대입한다.
answer = sum(numbers) # sum함수를 이용하여 list안의 요소를 모두 더한다.
return answer
가장 직관적인 방법이라고 생각한다.
그렇지만 파이썬을 사용하는 이유는 파이썬의 함수를 적극 활용하기 위함으로 함수를 사용하는 방법도 적어보겠다.
def solution(n):
answer = 0
numbers = list(map(int, str(n)))
for i in range(len(numbers)):
answer += numbers[i]
return answer
numbers = list(map(int, str(n)))
딱 이 부분만 보면 되겠다.
굳이 for문을 돌리면서 복잡하게 구현했다고 볼 수 있는데 당장 이 문제를 풀때는 저것밖에 기억이 나지 않았다.. (멍청이슈)
answer = sum(map(int, str(n)))
이렇게 한 방에 answer까지 구할 수 있는 방법이 있다.
여튼 map()함수의 동작 방식은 map(A, B) 형태로 작동하는데
B는 데이터의 집합이며 A는 각 데이터(요소)에 적용할 함수다.