본문 바로가기

코테 준비27

[프로그래머스] Level 1. 하샤드 수 def solution(x): digits_sum = 0 for i in str(x):# 문자열로 변경 후 한글자씩 접근 digits_sum += int(i)# 자릿수의 합에 더해준다 if x%digits_sum == 0:# 자릿수의 합이 처음 입력받은 수로 나눠지면 나머지가 0이다 answer = True else: answer = False return answer 2022. 1. 13.
[프로그래머스] Level 1. 행렬의 덧셈 def solution(arr1, arr2): answer = [] for i, lst in enumerate(arr1): # arr1 리스트의 순서: i, 내용: lst ex) 0 [1, 2] new = [x+y for x, y in zip(lst, arr2[i])] # 각 요소들의 값 더하기 answer.append(new) # 정답 리스트에 추가 return answer 1. enumerate 함수 - 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체 리턴 - arr1을 돌면서 인덱스와 값을 얻을 수 있다 - 같은 인덱스에 있는 리스트끼리 더하는 것이므로 arr1에서 얻은 인덱스 값을 활용하였다 2. 두 리스트 각 요소들의 값 더하기 1) li.. 2022. 1. 12.
[프로그래머스] Level 1. 핸드폰 번호 가리기 def solution(phone_number): answer = '*' * (len(phone_number) - 4) # 전화번호의 길이에서 4를 제외한 숫자만큼 *추가 answer += phone_number[-4:] # 전화번호 뒷자리 4자리 추가 return answer 파이썬 문자열은 슬라이싱을 활용할 수 있다 음의 인덱스 사용하기 - 끝에서 4자리를 가져오려면 [-4 : ]를 사용 https://codetorial.net/tips_and_examples/list_slicing.html 2022. 1. 12.
[프로그래머스] Level 1. x만큼 간격이 있는 n개의 숫자 def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x * i) return answer - x가 2, n이 5일 경우 2x1, 2x2, .., 2x5까지 해야된다. 1부터 5까지를 증가시키며 곱셈계산 후 리스트에 더해줌 range - range(시작숫자, 종료숫자, step) 2022. 1. 12.
[프로그래머스] Level 1. 직사각형 별찍기 a, b = map(int, input().strip().split(' '))# '5 3'을 입력시 ' '로 구별되며 정수형으로 저장됨 for i in range(b):# 세로의 길이 print('*' * a)# 가로의 길이 map 함수 - map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다. map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다. https://wikidocs.net/32#map 2022. 1. 11.
[프로그래머스] Level 1. 수박수박수박수박수박수? def solution(n): answer = '' subak_num = n // 2# '수박'이 나와야하는 수는? ex) 4이면 2번, 3이라면 1번 answer = '수박' * subak_num# 나와야하는 수만큼 수박 곱하기 if n % 2 != 0:# 길이가 홀수면 '수'를 추가해야함 answer += '수' return answer for문을 사용하지 않고 푼것 def solution(n): answer = '' for i in range(n): if i%2 == 0: answer += '수' else: answer += '박' return answer for문을 사용하면 좀 더 직관적일수도..? 2022. 1. 11.