본문 바로가기

알고리즘 & 코딩테스트

(48)
Programmers Lv.1 "자연수 뒤집어 배열로 만들기" 이전에 포스팅한 내용이 활용된다. 주어진 숫자를 형변환하여 이터러블 객체로 바꾼 후 이를 리스트에 담고 역순으로 반환한다. def solution(n): tmp = list(map(int, str(n))) return tmp[::-1]
Programmers Lv.1 "문자열 내 p와 y의 개수" 문자열을 다루는 기초문제로써 대문자와 소문자가 섞여있는 문자열들 사이에서 특정 문자의 개수를 아는것이 핵심이다. 즉, 파이썬 문자열 내장함수 중 count()를 이용하면 되는 가벼운 문제로 코드는 아래와 같다. def solution(s): return False if s.count('p') + s.count('P')!=s.count('y') + s.count('Y') else True
Programmers Lv.1 "짝수와 홀수" 흠... 너무 쉬운 기본 개념이라 따로 정리하기도 좀 그렇지만 모든 사람이 알고있듯이 짝수(Even)와 홀수(Odd)를 분간하는 기준은 2로 나눈 나머지가 0이냐 아니냐이다. 즉, 아래와 같이 정리할 수 있다. 주어진 정수 n을 2로 나눈 나머지가 0일경우 n은 짝수(Even) 주어진 정수 n을 2로 나눈 나머지가 1일경우 n은 홀수(Odd) # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다. # 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다. def evenOrOdd(num): if (num%2)==0: s = "Even" else: s = "Odd" #..
Programmers Lv.1 "자릿수 더하기" 요 문제는 주어진 숫자의 자릿수를 분리하는 것이 핵심이다. 무슨말이냐 하면 125의 숫자가 들어왔을 때 우리는 3자리 숫자 125로 보지만 간혹 125의 각 자릿수를 분할하여 1, 2, 5로 나눠서 생각해야할 때가 있다는 것이다. 이때 자주 사용하는 알고리즘이 데이터 타입간 변화를 이용한 것이다. 자세한 내용은 다음과 같다. 자연수 n이 주어진다. n의 데이터 타입을 문자열로 변환한다. (Python의 경우 str()이 되겠다.) 문자열로 바꾼 n은 iterable객체가 되므로 각각의 원소를 분리할 수 있다. def solution(n): answer = 0 for e in str(n): answer += int(e) return answer 파이썬의 Iterable 객체는 문자열(string), 리스트..
Programmers Lv1. "평균 구하기" 평균은 전체 원소의 총합을 갯수로 나는 값이며 일반적으로 산술평균이 우리가 알고있는 평균과 같다. def solution(arr): answer = sum(arr) / len(arr) return answer