https://programmers.co.kr/learn/courses/30/lessons/12948
def solution(phone_number):
return '*'*len(phone_number[:-4]) + phone_number[-4:]
뒤에서 네 자리까지만 숫자로 나타내고,
뒤에서 네 자리 앞에 있는 숫자들을 *로 바꾼다.
두 문자열을 합치면 문제에서 요구하는대로 전화번호를 가린 문자열을 나타낼 수 있다.
https://programmers.co.kr/learn/courses/30/lessons/86491
def solution(sizes):
# 객체 정렬
maxw,maxh = 0,0 #짧은쪽 긴쪽 최대값 저장할 변수 선언
for size in sizes: # sizes 파라미터를 돌면서
size.sort() # 오름차순 정렬이므로 [짧은쪽, 긴쪽]으로 정렬
maxw = max(size[0],maxw)
maxh = max(size[1],maxh)
#리스트 돌면서 최대값 저장
return maxw * maxh # 문제에서 요구하는 넓이 리턴
일단 직사각형이라면 가로나 세로중 한 쪽이 클것이다.
명함은 눕혀도 되고 세워도 된다.
따라서 가로세로 구분을 하지않고 길쭉한 쪽과 짧은 쪽만이 존재한다고 생각한다.
모든 명함이 들어가야 한다.
길쭉한 쪽에서의 최댓값과 짧은 쪽에서의 최댓값에 맞게 지갑을 만들면 눕히던지 세우던지 해서 모두 들어갈 수 있다.
https://programmers.co.kr/learn/courses/30/lessons/82612#
def solution(price, money, count):
cost = 0 # 놀이기구를 count번 타기위해 내야하는 총 비용을 저장할 변수 선언
for i in range(1,count+1): # 1부터 count까지
cost += price * i # count 변수에 비용 더해서 저장
if cost > money: # 만약 총 비용이 내가 가진 돈보다 크다면
return cost - money # 비용 - 내가 가진돈 리턴
else: # 그렇지 않다면
return 0
https://programmers.co.kr/learn/courses/30/lessons/12906
def solution(arr):
answer = [] #숫자를 담을 리스트 선언
last = -1 # 마지막으로 넣었던 숫자를 저장하는 변수 선언
# 기본값이 -1 인 이유는 arr의 요소들이 0 이상의 정수이기 때문
for i in arr: # arr 리스트를 돌면서
if i == last: # 지금 보는 숫자 i가 마지막으로 넣었던 숫자랑 같다면
continue # 다음으로 넘어감
answer.append(i) # 아니라면 숫자 i를 answer에 담아줌
last = i # 마지막으로 담은 숫자를 i 로 저장
return answer
https://programmers.co.kr/learn/courses/30/lessons/12910
def solution(arr, divisor):
answer = [] # 나누어 떨어지는 숫자들을 담을 배열 선언
for i in arr: # arr을 돌면서
if i % divisor == 0: # i가 divisor로 나눈 나머지가 0 이라면
answer.append(i) # answer 리스트에 추가
if not answer: # answer 리스트가 비어있다면
return [-1] # 조건에 따라서 [-1] 리턴
return sorted(answer) # 아니라면 answer을 정렬해서 리턴
https://programmers.co.kr/learn/courses/30/lessons/12917
def solution(s):
s = [i for i in s] #문자열 s를 문자 하나하나를 요소로하는 리스트로 만들기
s.sort(reverse = True) # 내림차순으로 정렬
# 아스키코드에서 대문자가 소문자보자 작음
return ''.join(s) # join함수를 이용해서 리스트 s 요소들을 공백없이 붙여서 문자열로 바꿔줌
https://programmers.co.kr/learn/courses/30/lessons/12926
def solution(s, n):
answer = ''
for i in s:
if 'A' <= i <= 'Z': # i 가 대문자 알파벳이면
if ord(i) + n <= ord('Z'): # i를 아스키코드에서 오른쪽으로 n칸 옮겨도 'Z'보다 같거나 작으면
answer += chr(ord(i)+n) # answer 문자열에 chr 함수를 통해 아스키코드를 문자열로 바꾸어서 추가
else: # i를 오른쪽으로 n칸 옮겼더니 'Z'를 넘으면
answer += chr(ord(i)+n - ord('Z') + ord('A')-1) # Z에서 초과한 만큼을 A에서 시작시킴
elif 'a' <= i <= 'z': # i 가 소문자 알파벳이면
if ord(i) + n <= ord('z'):
answer += chr(ord(i)+n)
else:
answer += chr(ord(i)+n - ord('z') + ord('a')-1)
else: # i가 공백이면
answer += ' ' # answer에 공백 추가
return answer
https://programmers.co.kr/learn/courses/30/lessons/12930#
def solution(s):
answer = '' # 빈 문자열 선언
idx = 0 # 인덱스 선언
for val in s: # 문자열 s를 돌면서
if val.isalpha(): # 지금 보는 문자가 알파벳이면
if idx%2 == 0: # 현재 짝수 인덱스라면
answer += val.upper() # 대문자로 변환
else: # 홀수 인덱스라면
answer += val.lower() # 소문자로 변환
idx += 1 # 인덱스 증가
else: # 지금 보는 문자가 공백문자라면
answer += ' ' # 공백 추가
idx = 0 # 인덱스 0으로 초기화
return answer
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
위 제한사항을 따라, 공백문자(스페이스바) 가 나올때마다 인덱스를 0으로 초기화 해줘야한다.
https://programmers.co.kr/learn/courses/30/lessons/12931
def solution(n):
answer = 0
n = str(n) # 정수 n을 문자열로 변환
for i in n: # 문자열 n 을 돌면서
answer += int(i) # 각 문자 i를 정수로 변환하여 더함
return answer