전체 글(177)
-
점의 위치 구하기 - Python
def solution(dot): if dot[0] > 0: if dot[1] > 0: answer = 1 else: answer = 4 else: if dot[1] > 0: answer = 2 else: answer = 3 return answer # Test Cases print(solution([2, 4])) print(solution([-7, 9])) 조건문으로 풀었습니다. def solution(dot): quad = [(3,2),(4,1)] return quad[dot[0] > 0][dot[1] > 0] 그런데 이렇게도 풀 수 있었군요. 창의력이 대단합니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120841 프로그..
2023.09.21 -
편지 - Python
def solution(message): return 2 * len(message) # Test Cases print(solution("happy birthday!")) print(solution("I love you~")) 쉬운 문제인데 재밌는 풀이를 발견하여 글을 남깁니다. def solution(message): return len(message)
2023.09.21 -
배열 원소의 길이 - Python
def solution(strlist): answer = [] for item in strlist: answer.append(len(item)) return answer # Test Cases print(solution(["We", "are", "the", "world!"])) print(solution(["I", "Love", "Programmers."])) 위와 같이 풀었습니다. def solution(strlist): answer = list(map(len, strlist)) return answer map()을 잘 쓰면 이렇게도 되네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120854 프로그래머스 코드 중심의 개발자..
2023.09.21 -
순서쌍의 개수 - Python
def solution(n): answer = 0 for i in range(1, n+1): if not (n % i): answer += 1 return answer # Test Cases print(solution(20)) print(solution(100)) 평범하게 했습니다. def solution(n): return len(list(filter(lambda v: n % (v+1) == 0, range(n)))) 신기한 풀이를 발견하여 소개합니다. range(n)은 0부터 n-1까지의 정수를 포함하는 리스트를 생성합니다. lambda v: n % (v+1) == 0는 람다 함수입니다. 이 함수는 입력값 v에 대해 n이 (v+1)로 나누어 떨어지는지를 검사합니다. filter(lambda v: n ..
2023.09.21 -
진료 순서 정하기 - Python
def solution(emergency): answer = [] sorted_list = sorted(emergency, reverse=True) for item in emergency: for i in range(len(sorted_list)): if item == sorted_list[i]: answer.append(i+1) break return answer # Test Cases print(solution([3, 76, 24])) print(solution([1, 2, 3, 4, 5, 6, 7])) print(solution([30, 10, 23, 6, 100])) 이중반복문을 쓴게 시간 복잡도 면에서 좀 걸렸습니다. def solution(emergency): e = sorted(emergen..
2023.09.21 -
외계행성의 나이 - Python
def solution(age): age_str = str(age) char_map = { '0': 'a', '1': 'b', '2': 'c', '3': 'd', '4': 'e', '5': 'f', '6': 'g', '7': 'h', '8': 'i', '9': 'j' } answer = ''.join(char_map[char] for char in age_str) return answer # Test Cases print(solution(23)) print(solution(51)) print(solution(100)) replace 안 써보려고 했습니다. def solution(age): return ''.join([chr(int(i)+97) for i in str(age)]) 그런 생각에 이걸 까먹은 ..
2023.09.21 -
짝수의 합 - Python
def solution(n): answer = 0 for i in range(0, n + 1, 2): answer += i return answer # Test Cases print(solution(10)) print(solution(4)) 또 생각없이 풀었습니다. def solution(n): return 2*(n//2)*((n//2)+1)/2 이와 같이 등차수열의 합을 나타낼 수 있는데 말이죠... 반성하게 됩니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120831 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받..
2023.09.21 -
각도기 - Python
def solution(angle): if angle == 180: answer = 4 elif angle > 90: answer = 3 elif angle == 90: answer = 2 else: answer = 1 return answer # Test Cases print(solution(70)) print(solution(91)) print(solution(180)) 생각없이 이렇게 푸는 습관을 고치려는 노력을 해야겠습니다. def solution(angle): answer = (angle // 90) * 2 + (angle % 90 > 0) * 1 return answer 이 코드는 다른 사람이 푼 코드입니다. 시간복잡도는 똑같이 O(1)이지만, 조건문을 체크하는 것보다 단순 연산이 더 빠르므로..
2023.09.21 -
문자 반복 출력하기 - Python
def solution(my_string, n): answer = '' for i in range(len(my_string)): answer += my_string[i] * n return answer # Test Cases print(solution("hello", 3)) 이렇게 썼습니다. def solution(my_string, n): return ''.join(i*n for i in my_string) join문을 이렇게 쓰면 되구나... 싶네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120825 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기..
2023.09.20 -
짝수 홀수 개수 - Python
def solution(num_list): even = 0 odd = 0 for item in num_list: if item % 2: odd += 1 else: even += 1 answer = [even, odd] return answer print(solution([1, 2, 3, 4, 5])) print(solution([1, 3, 5, 7])) C언어에서 하던 대로 했습니다. def solution(num_list): answer = [0,0] for n in num_list: answer[n%2]+=1 return answer 리스트니까 이런 접근이 가능했는데 이걸 체내화하지 못했나봅니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/..
2023.09.20