전체 글(178)
-
소인수분해 - Python
def solution(n): answer = [] divisor = 2 while n > 1: if n % divisor == 0: if divisor not in answer: answer.append(divisor) n //= divisor else: divisor += 1 return answer # Test Cases print(solution(12)) print(solution(17)) print(solution(420)) 이렇게 풀었습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120852 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술..
2023.09.29 -
숨어있는 숫자의 덧셈 (1) - Python
def solution(my_string): answer = 0 for item in my_string: if item.isdigit(): answer += int(item) return answer # Test Cases print(solution("aAb1B2cC34oOp")) print(solution("1a2b3c4d123")) 이번엔 .isdigit()를 사용했습니다. def solution(my_string): return sum(int(i) for i in my_string if i.isdigit()) 그런데 sum()을 쓰면 더 깔끔하게 된다는 것을 잊었네요, 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120851 ..
2023.09.29 -
문자열 정렬하기 (1) - Python
def solution(my_string): answer = [] [answer.append(int(i)) for i in my_string if i in "0123456789"] answer.sort() return answer # Test Cases print(solution("hi12392")) print(solution("p2o4i8gj2")) print(solution("abcde0")) def solution(my_string): return sorted([int(c) for c in my_string if c.isdigit()]) .isdigit()를 사용한 풀이를 발견했습니다. 배워야겠습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses..
2023.09.29 -
모음 제거 - Python
def solution(my_string): for item in ["a", "e", "i", "o", "u"]: my_string = my_string.replace(item, "") return my_string # Test Cases print(solution("bus")) print(solution("nice to meet you")) replace()를 사용했습니다. def solution(my_string): return "".join([i for i in my_string if not(i in "aeiou")]) join()을 사용한 풀이를 발견했습니다. 깔끔하네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/1208..
2023.09.29 -
합성수 찾기 - Python
def solution(n): prime_set = {0, 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 4..
2023.09.24 -
2차원으로 만들기 - Python
def solution(num_list, n): answer = [] for i in range(0, len(num_list), n): temp = [] for j in range(i, i + n): temp.append(num_list[j]) answer += [temp] return answer # Test Cases print(solution([1, 2, 3, 4, 5, 6, 7, 8], 2)) 이렇게 풀었습니다. def solution(num_list, n): answer = [] for i in range(0, len(num_list), n): answer.append(num_list[i:i+n]) return answer 그런데 저보다 훨씬 좋은 풀이가 있네요. 프로그래머스: https://s..
2023.09.22 -
구슬을 나누는 경우의 수 - Python
def factorial(n, m): num = 1 while n >= m: num *= n n -= 1 return num def solution(balls, share): numerator = factorial(balls, 1) denominator = factorial(share, 1) * factorial(balls - share, 1) answer = numerator / denominator return answer # Test Cases print(solution(3, 2)) print(solution(5, 3)) 이전에 비슷하게 짰었는데 한번 틀렸었습니다. 그 이유는 위의 코드에서는 현재 numerator와 denominator로 나누어서 계산하지만, 이전에는 한번에 합쳐서 계산했더니 문제..
2023.09.22 -
가위 바위 보 - Python
def solution(rsp): rsp = rsp.replace("2", "영") rsp = rsp.replace("0", "오") rsp = rsp.replace("5", "이") rsp = rsp.replace("영", "0") rsp = rsp.replace("오", "5") rsp = rsp.replace("이", "2") return rsp # Test Cases print(solution("2")) print(solution("205")) 제 풀이는 위와 같습니다. def solution(rsp): d = {'0':'5','2':'0','5':'2'} return ''.join(d[i] for i in rsp) 딕셔너리와 join()을 쓰면 이렇게 가능한데 이걸 또 잊었네요. def solu..
2023.09.22 -
모스부호 (1) - Python
def solution(letter): answer = '' morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x', '-.--':'y','--..':'z' } morse_list = letter.split(" ") for item in morse_list: temp = morse[item] answer += ..
2023.09.22 -
개미 군단 - Python
def solution(hp): answer = hp // 5 hp = hp % 5 answer += hp // 3 hp = hp % 3 answer += hp return answer # Test Cases print(solution(23)) print(solution(24)) print(solution(999)) C언어로 풀던 대로 했습니다. def solution(hp): answer = 0 for ant in [5, 3, 1]: d, hp = divmod(hp, ant) answer += d return answer 이렇게 세련된 풀이도 있네요. 본받을 점이 있습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/120837..
2023.09.22