본문 바로가기
  • AI 개발자가 될래요

Python35

[Python/코테공부] 세로 읽기 [Python/코테공부] 세로 읽기 나의 풀이 def solution(my_string, m, c): return ''.join([my_string[i*m + (c-1)] for i in range(len(my_string)//m)]) 테스트 결과 다른 사람의 풀이 def solution(my_string, m, c): return my_string[c-1::m] 슬라이싱은 정말 위대하다. 테스트 결과 * 문제 출처 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/181904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.. 2023. 11. 2.
[Python/코테공부] 배열 만들기 4 [Python/코테공부] 배열 만들기 4 나의 풀이 def solution(arr): stk = [] i = 0 while i 0: if arr[i] > stk[-1]: stk.append(arr[i]) i += 1 else: stk.pop() else: stk.append(arr[i]) i += 1 return stk 직관적이다. 테스트 결과 시간이 좀 걸린다. 다른 사람의 풀이 def solution(arr): stk = [] for i in range(len(arr)): while stk and stk[-1] >= arr[i]: stk.pop() stk.append(arr[i]) return stk 반복문의 조건 설정을 매우 잘했다. 테스트 결과 시간 .. 2023. 10. 31.
[Python/코테공부] 배열 만들기 2 [Python/코테공부] 배열 만들기 2 내 풀이 def solution(l, r): answer = [i for i in range(l, r + 1) if not(set(str(i))-{'0', '5'})] return answer if len(answer)>0 else [-1] 풀리긴 한다. 근데 특정 테스트 케이스에서 시간이 오래 걸렸다. 테스트 결과 다른 사람의 풀이 def solution(l, r): answer = [] i = 1 n = 5 while True: if n > r: break n = 5 * int(bin(i)[2:]) if l 2023. 10. 31.
[Python/코테공부] 코드 처리하기 [Python] 코드 처리하기 내 풀이 사실 푸는데 애 좀 먹었다. 문제 이해를 잘못해서.. 전체 문자열의 인덱스에 대해 홀짝을 계산했어야 하는데 split된 문자열에 대해 계산해서 오류가 나왔다. 그래서 고친 코드는 이거다. def solution(code): # code = "abc1abc1abc" answer = '' mode = 0 idx = 0 for c in code: if c== '1': mode = abs(mode-1) idx += 1 continue elif (idx+mode)%2 == 0: answer += c idx +=1 else: idx +=1 return answer if len(answer) != 0 else "EMPTY" 테스트 결과 풀리긴 했다만 시간이 좀 걸렸다. 다른 사.. 2023. 10. 31.
[Python/코테연습] 더 크게 합치기 [Python/코테연습] 더 크게 합치기 사실 이 문제 굉장히 어려울줄알고 재귀를 쓰려고 시도했었다.. 근데 알고보니 매우 간단한 문제였다^^ 내 풀이 def solution(a, b): str_a = str(a) str_b = str(b) return int(str_a + str_b) if int(str_a+str_b) > int(str_b+str_a) else int(str_b+str_a) int형을 str으로 바꿔서 일단 더하고, 비교했다. 테스트 결과 간단한 예제라서 그런지 일단 더하고 비교해도 실행에 어려움이 없다. 다른 사람의 풀이 def solution(a, b): return int(max(f"{a}{b}", f"{b}{a}")) str의 특성을 아주 잘 이용해서 풀었다.. 배워야 할 부분.. 2023. 10. 30.
[Python/코테공부] 대소문자 바꿔서 출력하기 [Python] 대소문자 바꿔서 출력하기 나의 처음 풀이 str = input() lower = [i.upper() if i.islower() else i.lower() for i in str] print(''.join(lower)) upper, lower, join에 대한 함수를 알고 있었기 때문에 무리 없이 풀이했다고 생각했다. 테스트 결과 그러나 다른 사람의 풀이에서 쇼킹한 답을 발견했다. 다른 사람의 풀이 str = input() print(str.swapcase()) 이런 내장함수가 있었다니.. 쇼킹하다.. 테스트 결과 확실히 내장함수 최적화가 잘 되어있는지 더 빠르다. (미묘한 차이지만..) 나중에 응용해볼만도 하다. 근데 심사위원이 이를 좋게 볼지는 모르겠다. 이 함수를 왜 썼냐고 물어본다면.. 2023. 10. 30.