본문 바로가기
코딩

코딩테스트 프로그래머 개발자 면접 대비 배열의 평균 구하기 하샤드 파이썬 기본 다음 순서 문제 모음 : 왕초보를 위한

by 콘맵: 콘텐츠지도 2024. 5. 13.

 

파이썬이라고 평균을 구하는 특별한 코드가 있지는 않다 

 

그래도 리스트에 sum len 을 쓸 수 있는 것은 장점이다 

 

 

 

다음과 같이 풀면 된다 

 

파이썬 정도라면 나중에는 avr(list) 로 바로 평균을 구하는것도 생길수도 있지 않을까 생각이 들지만 

 

지금 이대로도 워낙 단순한 코드이긴 해서 괜찮지 않나 한다 

 

 

 

하샤드 수 

 

코딩테스트를 풀다 보면 문제를 읽을 때 매우 피곤함이 느껴지는 경우가 있다 

 

안 그러다가도 그렇게 되는 느낌들이 신기하다 

 

문과적 인간에서 이과적 인간이 되는 느낌 같기도 하고 

 

N 에서 S 의 mbti 인간이 되는 느낌 같기도 하다 

 

 

리눅스를 만든 리누스 토르발즈도 말보단 코드를 원했다

 

 

 

이번 문제와 코드도 장황한 느낌이다 

 

하샤드 수는 자릿수를 더한 값으로 본인을 나눴을 때 나머지가 없는 수다 

 

글자를 읽는것보다는 자릿수를 더하기 위해 자릿수를 문자로 바꾸고 이 문자들을 하나하나 리스트로 만들고, 이걸 sum 으로 더하고 % 를 써서 본인으로 나눠줬을 때 0이 된다면 True 아니면 false .. if 와 else... 

 

이런 식으로 생각하는 것이 코딩테스트 합격하는 사람들의 사고방법이다 

 

 

사람들이 많이 좌절하는 부분이 

 

자릿수를 문자로 바꾸는 부분이다 

 

그냥 숫자를 리스트로 하나씩 만들 수 있으면 좋겠는데 

 

그러면 안 된다 

 

쓸데없이 숫자를 문자로 만든 뒤에, (str(x))

 

다시 이걸 반복문을 써서 (for i in str_list(x) :   digit_list_x.append(int(i)) )

 

다시 문자를 숫자로 만들며 ( digit_list_x.append(int(i)) 부분) 

 

리스트 안에 하나씩 담아야 한다고 생각할 수 있다  

 

그나마 파이썬이라 간결한 것이 이정도다 

 

 

왜 숫자를 문자로 만들고 다시 반복문을 쓰면서 문자를 숫자로 만들고 리스트 안에 담아야 하는지 알아보자 

 

 

숫자를 문자로 만들지 않으면, 그냥 하나의 숫자가 하나의 리스트 안으로 들어갈 뿐이다 .

 

(프로그래머스 레벨1 수준에서, 백준 브론즈 수준에서 이런 코딩을 해야 하는 부분이 자주 나오고 여기서 막히는 분들이 많아서 특별히 길게 설명하고 있다 )

 

그래서 숫자를 문자로 만들면서 이 문자들을 하나하나 처리할 수 있는 포문을 사용하면서 반복문을 사용하면서 리스트 안으로 분리시켜서 집어넣는 것이다 

 

또한 리스트에 넣었기 때문에 sum 함수를 쓰기에도 좋다 

 

따라서 이렇게 풀어나간다