본문 바로가기

전체 글

(906)
[LV1] 프로그래머스 서울에서 김서방 찾기 python https://programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제 programmers.co.kr 파이썬의 format을 써먹어 볼 수 있는 문제다. def solution(seoul:list): # print( "김서방은 {0}에 {1}있다".format(seoul.index("Kim"),0)) # 김서방은 1에 0있다 return "김서방은 {0}에 있다".format(seoul.in..
[LV1] 프로그래머스 문자열 다루기 기본 python https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이�� programmers.co.kr 단순 반복문 구현 def solution(s:str): if s.isdigit(): if len(s) in[4,6]: return True return False 한번 더 풀면서 수정한 코드 def solution(s:str): return True if s.isdigit() and len(s) in (4,..
[LV1] 프로그래머스 문자열 내림차순으로 배치하기 python https://programmers.co.kr/learn/courses/30/lessons/12917 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 � programmers.co.kr 해당 문제는 연습이 제대로 안되어있으면 당황할 문제이다. 일단 문자열은 immutable인데... 재미있는게 문자열을 sort하면 배열로 바꿔 정렬해 버린다. 따라서 문자열을 다시 한번 배열로 합쳐줘야 한다. def solution(s): return "".join(sorted(s,reverse=True))
[LV1] 프로그래머스 문자열 내 p와 y의 개수 python https://programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 단순 반복문 구현이다. 해당 문제는... 나는 이렇게 풀었다... def solution(s:str): answer = [0,0] for s in s.lower(): if s == 'p': answer[0]+=1 elif s =='y': answer[1]+=1 return True if an..
[LV1] 프로그래머스 문자열 내 마음대로 정렬하기 python 정렬 문제인데, key를 어떻게 사용하는지를 보여주는 아주 대표적인 문제이다. 이랑 비슷한 문제가 itertools의 cmp_to_key를 사용하는게 하나 더 있다. (x[n],x)로 하면 앞에 것을 먼저 적용한 뒤, 같을 경우 뒤 기준을 적용한다. 간단하게 이해하면, 퀵소트 같은 것을 하는데 비교를 대소 대신 이 함수를 쓸 수 있도록 해주는 것이다. 파이썬의 기본은 오름차순이다. 기억합시당. 뒤집으려면 reverse=True 인수를 넣어준다. def solution(strings, n): return sorted(strings, key = lambda x: (x[n],x))
[LV1] 프로그래머스 두 정수 사이의 합 python https://programmers.co.kr/learn/courses/30/lessons/12912 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr 우리들이 좋아하는 등차수열 공식이다... (초항 + 말항 ) * 항 수 // 2 평균을 항 갯수만큼 곱해주면 해당 등차수열의 총 합이 나온다는 가우스 형님의 가르침. def solution(a, b): return (abs(a-b)+1)*(a+b)//2
[LV1] 프로그래머스 나누어 떨어지는 숫자 배열 Python https://programmers.co.kr/learn/courses/30/lessons/12910?language=python3 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하� programmers.co.kr 이 문제는 안풀어져 있어서 업로드 하려고 풀었다. 30초짜리 문제인데, 풀고 베스트 해설을 봤더니 or을 썼더라 앞이 False ([]) 이면 [-1]을 리턴하기 위함이다. 정말 좋은 아이디어다... 대박 def solution(arr, divisor): retu..
[LV1] 프로그래머스 같은 숫자는 싫어 python # 1 뒤를 보며 짧게 풀기 def solution(arr): # 뒤를 보고 앞을 넣을까 말까 결정하기 때문에, 마지막 녀석은 무조건 추가해준다. test = [ v for i,v in enumerate(arr) if i+1 < len(arr) and arr[i+1]!=arr[i]] return test+[arr[-1]] # 2 닥치고 구현 def solution(arr): answer = [] for i in range(len(arr)): if not answer: answer.append(arr[i]) if answer[-1] == arr[i]: continue else: answer.append(arr[i]) return answer https://programmers.co.kr/learn/cour..