레벨 1 3

(파이썬) [알고리즘 문제 풀이] - 히샤드 수 (프로그래머스)

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 풀이 숫자 x를 x의 자릿수들을 모두 더한값으로 나눴을때 나누어 떨어지는지 그렇지 않은지 구분하는 문제 입니다. 숫자 x의 자릿수들을 더하기 위해 숫자 x의 string 형태가 필요 각 자릿수들을 integer 형태로 바꾼 뒤 총 합을 구함 x를 각 자릿수의 총합으로 나눈 숫자의 나머지가 0인지 확인 코드 def solution(x): x_str = str(x) sum_digit = sum( [ int(y) for y i..

(파이썬) [알고리즘 문제 풀이] - 콜라츠 추측 (프로그래머스

프로그래머스의 연습 문제중 하나인 콜라츠 추측 입니다. 숫자가 한개 주어지며 규칙은 간단합니다. 주어진 숫자가 짝수라면 2로 나눈다. 주어진 숫자가 홀수라면 3을 곱하고 1을 더한다. 주어진 숫자가 1이 될때까지 반복한다. 단, 500번을 반복해도 1이 되지 않는다면 -1을 리턴한다. 위의 작업을 진행하기 위해서는 loop이 한개 필요합니다. For loop을 써도 되고 While loop을 써도 괜찮아 보이네요. 위 작업을 한번 할때마다 따로 variable을 만들어서 기록 해둡니다. loop은 주어진 숫자가 1이 되거나 작업 횟수가 500번이 넘어가면 멈추는 조건이 있어야 하겠네요. 짝수인지 홀수인지 구분하는건 if statement를 써서 2로 나눴을때 나머지가 0인지 체크 했습니다. def sol..

(파이썬) [알고리즘 문제 풀이] - 문자열 내 마음대로 정렬하기 (프로그래머스)

프로그래머스의 문제 중 하나인 문자열 내 마음대로 정렬하기 입니다. 문자열로 구성된 리스트 strings와 n에 대하여 strings를 n번째 인덱스로 정렬해서 리턴하면 되는 문제입니다. 문제에서 요구하는 정렬을 하기 위해서는 딱 2가지 규칙이 필요합니다. n번째 인덱스를 기준으로 오름차순 동일한 n번째 인덱스가 여럿일 경우 사전 순으로 정렬 사전 순으로 먼저 정렬을 한 후에 n번째 인덱스를 기준으로 정렬을 나중에 하여 문제에서 요구하는 조건을 달성했습니다. def solution(strings, n): strings.sort() strings.sort(key = lambda x:x[n]) return strings 파이썬에서는 lambda를 이용하여 특정 인덱스를 기준으로 하는 정렬을 이용할수 있습니다..