파이썬 31

[프로그래머스] [SQL] 대여 기록이 존재하는 자동차 리스트 구하기

머리가 안돌아간다 SQL 풀기 SELECT 절에서 서브쿼리써서 풀고 싶었는데 생각보다 잘 안풀려서 이럴거면 그냥 안쓰는게 낫겠다 싶어서 서브쿼리 안쓰고 풀었다 ... 이제 설명할 것도 없는 거 같은데 SELECT CAR_ID인데 겹치지 않게(DISTINCT) FROM 테이블 두개 CAR_ID로 조인 WHERE CAR_TYPE = '세단' and 대여시작이 10월인 거 (LIKE '2022-10%') → 이미 DATE라서 형변환은 안함 ORDER BY CAR_ID대로 내림차순 SELECT DISTINCT CAR_RENTAL_COMPANY_CAR.CAR_ID FROM CAR_RENTAL_COMPANY_CAR JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY ON CAR_RENTAL_COM..

코딩테스트 2023.11.09

[프로그래머스] [Python] 머쓱이보다 키 큰 사람

오늘도 파이썬 조금씩 발전 중이다 내가 경험한 바 매일 조금씩 하는거보다 무서운 게 없다 오늘도 파이팅! 흐흐... 조금 복잡하게 풀긴 했지만 보고 바로 넘어갔을 때에 비하면 장족의 발전 ! 이건 좀 부끄러운데 return 자리를 제대로 못잡아서 조금 헤맸다 그래도 해결했다!! def solution(array, height): up = [] for i in array: if height < i: up.append(i) return len(up) 다른 사람의 풀이 신기한데 댓글에 시간 복잡도가 안좋다고 for 문: O(n), sort: O(nlogn) 시간복잡도는 더 안좋음 def solution(array, height): array.append(height) array.sort(reverse=True..

코딩테스트 2023.11.07

[프로그래머스] [Python] 두 정수 사이의 합

오늘도 파이썬 나는 발전 중이다 3번 복창하면서 시작 sum(range()) 되는지 안되는지는 모르지만 일단 고 return 을 안넣어서 결과가 출력이 안되는 불상사가 잠시 있었다(머쓱) 그래도 생각 좀 정리하고 하니까 금방 풀렸다 하지만 항상 더 좋은 코드가 있지 def solution(a, b): if a > b: return sum(range(b,a+1)) elif b > a: return sum(range(a,b+1)) else: return a 다른 사람의 풀이 a, b = b, a !! 완전 기억 속에서 없어져있던 걸 쓰셨다 근데 댓글에 a,b가 같은 숫자일 경우도 같이 처리 해주셨으면 다른 케이스에서도 속도가 올라갔을거예요~! 이런말이 있어서 이것도 유의해야겠다 싶었다 def adder(a,..

코딩테스트 2023.11.06

[프로그래머스] [Python] 핸드폰 번호 가리기

오늘도 파이썬 ㅎㅎ 마지막 4개는 그냥 노출하면 되는데 앞부분을 도대체 어떻게 해결해야하는지 감이 안와서 구글링 ㅎㅎ 그랬더니 정규식이 나왔다 오 기발한데 하면서 적용해서 풀었다 import re def solution(pn): st = re.sub('[0-9]', '*', pn[:-4]) return st+pn[-4:] 다른 사람의 풀이 하지만 정규식도 복잡하게 푼거였다 그냥 마지막 4자리를 뺀 문자열 갯수만큼 *로 곱하면 된다! 멋있다 그냥 ㅋㅋㅋㅋㅋ def hide_numbers(s): return "*"*(len(s)-4)+s[-4:] 출처 : 프로그래머스

코딩테스트 2023.11.03

[프로그래머스] [Python] 정수 내림차순으로 배치하기

오늘도 파이썬 전에 풀었던게 있어서 int -> list까지는 괜찮았는데 거기서 다시 int로 바꾸는게 역경이었다 ㅁㄹ이가 도와줘서 같이 뚝딱뚝딱 오늘의 배운점 : sort(reverse=True) 이런 옵션이 있는 것도 모르고 [::-1]쓰고 있었다;; list에서 int로 바꿀 때는 join쓰기 def solution(n): a = list(map(int, str(n))) a.sort(reverse=True) result = ''.join(map(str, a)) return int(result) 다른 사람의 풀이 훨씬 간단하다 def solution(n): ls = list(str(n)) ls.sort(reverse = True) return int("".join(ls)) 이건 한줄 풀이 경이롭다 d..

코딩테스트 2023.11.02

[프로그래머스] [Python] 짝수의 합

골프존 떨어졌으니 다시 열심히 해야지..ㅎ 아직 못 풀고 있던 것 중에 제일 쉬운 거 중간에 뻘짓해서 안풀리긴 했는데 다른 블로그 참고해가며 풀어봤다 def solution(n): return sum([i for i in range(n+1) if i%2 == 0]) 다른 사람의 풀이 if문 안 걸고 2개씩 점프한다 def solution(n): return sum([i for i in range(2, n + 1, 2)]) 골프존 떨어져서 길게쓰면 구구절절 될 거 같아 오늘은 짧게 끝 ! 출처 : 프로그래머스 참고 블로그 : [Python의 꽃] 리스트 컴프리헨션(List Comprehension) [Python의 꽃] 리스트 컴프리헨션(List Comprehension) 안녕하세요 이번엔 파이썬에서 간결..

코딩테스트 2023.11.01

[프로그래머스] [Python] 자릿수 더하기

오늘은 파이썬 짱구 굴리다가 구글링했다 map으로 해결하는 방법이 나와서 적용했다 map 잘 쓰기 힘들다 def solution(n): li = list(map(int,str(n))) return sum(li) 다른 사람의 풀이 이렇게 한번에 return할 수 있는 방법도 있는데 중간에 print가 들어가있어서 이생각을 못했다 def sum_digit(number): return sum(map(int, str(number))) 좀 더 이런 방식으로 풀고 싶었다 int → str로 바꾸고 거기서 하나씩 뽑아내는 방법 def sum_digit(number): return sum([int(i) for i in str(number)]) 출처 : 프로그래머스

코딩테스트 2023.10.26

[Python] 리스트 정렬하기

오늘은 코테하면서 기억이 안나서 안타까웠던 거 정리하기 정렬하기 sort는 순서만 정렬하고 원본은 그대로 ! sorted는 원본을 바꿔버리는 것 → 이걸 아는데 적용을 못함 파이썬 리스트에는 리스트를 제자리에서(in-place) 수정하는 내장 list.sort() 메서드가 있습니다. 또한, 이터러블로부터 새로운 정렬된 리스트를 만드는 sorted() 내장 함수가 있습니다. 역순으로 정렬하기 기본적으로 [::-1]로 역순으로 정렬시킬 수 있다 list = [1,2,3,4,5] for i in list[::-1]: print(i) 이렇게 나온다 하지만 reverse가 내가 원했던 것이다 이걸 겨우 기억해냈는데 문제가 뭐냐면 이거였다 코테 중에 찾아볼수도 없어서 더 속터졌음 아무리 reverse 메소드가 리스..

코딩공부 2023.10.23

[프로그래머스] [Python] 수 조작하기 1

다시 파이썬 레~~쓰고 뭔가 COS Pro 시험 보고 나니 각성한 거 같다 남이 푼 코드를 많이 보라고 하는 건 이런 이유인가 처음 푼 거 헤헤 잘풀었다하고 돌리니 결과랑 다르게 나와서 결과 볼려고 print문 돌렸다 def solution(n, control): for i in range(len(control)): if 'w' in control[i]: n =+ 1 elif 's' in control[i]: n =-1 elif 'd' in control[i]: n =+ 10 else: n =- 10 return n print문 보니 n에서 왔다갔다 하고 있어서 문제에서 원하는 결과랑 내가 출력한 결과랑 다른 거였음 def solution(n, control): for i in range(len(cont..

코딩테스트 2023.10.17

[프로그래머스] [COS Pro] 2급 Python 모의고사

각 파트에서 못 푼 것만 리뷰 빈칸 채우기 문제 안내 빈칸 채우기는 이미 완성된 코드 중 빈칸에 알맞은 코드를 입력하는 문제 타입입니다. 빈칸을 제외한 기본 코드는 수정할 수 없습니다. 빈칸을 채우지 않을 경우, 실행 결과에 에러 메시지가 표시됩니다. 1. 공항 방문객 def func_a(arr, n): ret = [] for x in arr: if x != n: ret.append(x) return ret def func_b(a, b): if a >= b: return a - b else: return b - a def func_c(arr): ret = -1 for x in arr: if ret < x: ret = x return ret 이렇게 함수가 주어지고 빈자리를 채우면 된다 def solutio..

코딩테스트 2023.10.11