본문 바로가기

코딩테스트

(30)
[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] 프로그래머스 문자열 내 마음대로 정렬하기 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..
[LV1] 프로그래머스 가운데 글자 가져오기 python https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 인덱싱과 슬라이싱 문제이다. 슬라이싱은 [i:i]이면 []을 리턴함을 주의한다. 인덱스에서 //2 를 하면 항상 내림을 하기 때문에.. 홀수의 경우 가운데, 짝수일 경우 가운데의 뒤를 가져온다. 5 -> 2 (01'2'34) 4 -> 2 (01'2'3) 따라서 해당 해설에서 뒤는 +1을 해주었으니 홀수의 경우 가운데, 짝수..