전체 글(178)
-
직사각형 별찍기 - Python
1. 풀이 코드 a, b = map(int, input().strip().split(' ')) [print("*" * a) for _ in range(b)] 위와 같이 풀었습니다. 2. 다른 사람의 풀이 코드 a, b = map(int, input().strip().split(' ')) print(("*" * a + "\n") * b) 저보다 더 나으면서 파이썬스러운 풀이를 발견했습니다. 한 가지를 배우게 되네요. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요...
2023.10.14 -
문자열 다루기 기본 - Python
1. 풀이 코드 def solution(s): if len(s) == 4 or len(s) == 6: s = s.replace('1', '') s = s.replace('2', '') s = s.replace('3', '') s = s.replace('4', '') s = s.replace('5', '') s = s.replace('6', '') s = s.replace('7', '') s = s.replace('8', '') s = s.replace('9', '') s = s.replace('0', '') if len(s) != 0: return False else: return True else: return False # Test Cases print(solution("a234")) print(so..
2023.10.14 -
부족한 금액 계산하기 - Python
1. 풀이 코드 def solution(price, money, count): answer = (price * (count + 1)) * count / 2 - money return answer if answer >= 0 else 0 # Test Cases print(solution(3, 20, 4)) print(solution(3, 20, 1)) 위와 같이 등차수열의 합으로 계산하였습니다. 2. 다른 사람의 풀이 코드 def solution(price, money, count): return max(0,price*(count+1)*count//2-money) 저는 음수인 경우에 대해서 변수 선언을 한 뒤에 if()문을 사용했는데 max()를 사용하면 이렇게 깔끔하게 정리가 되네요. 대단합니다. 프로그래..
2023.10.14 -
약수의 개수와 덧셈 - Python
1. 풀이 코드 def divisor(n): count = 1 for i in range(1, n // 2 + 1): if n % i == 0: count += 1 return count def solution(left, right): return sum([item if divisor(item) % 2 == 0 else -item for item in range(left, right + 1)]) # Test Cases print(solution(13, 17)) print(solution(24, 27)) 위와 같이 새로운 함수 divisor()을 선언하여 풀었습니다. 약수의 개수를 직접 카운트합니다. 2. 다른 사람의 풀이 코드 def solution(left, right): answer = 0 for i..
2023.10.14 -
수박수박수박수박수박수? - Python
1. 풀이 코드 def solution(n): return ''.join(["박" if i % 2 else "수" for i in range(n)]) # Test Cases print(solution(3)) print(solution(4)) 위와 같이 풀었습니다. 2. 다른 사람의 풀이 코드 # 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다. # 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다. def water_melon(n): # 함수를 완성하세요. return "수박" * (n//2) + "수" * (n%2) # 실행을 위한 테스트코드입니다. print..
2023.10.13 -
가운데 글자 가져오기 - Python
1. 풀이 코드 def solution(s): size = len(s) return s[size//2:size//2 + 1] if size % 2 == 1 else s[size//2 - 1:size//2 + 1] # Test Cases print(solution("abcde")) print(solution("qwer")) 위와 같이 풀었습니다. 2. 다른 사람의 풀이 코드 solution = lambda s: s[(len(s) - 1) // 2 : len(s) // 2 + 1] 수학적 능력이 대단한 풀이네요. 프로그래머스:https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로..
2023.10.13 -
제일 작은 수 제거하기 - Python
1. 풀이 코드 def solution(arr): arr.remove(min(arr)) return arr or [-1] # Test Cases print(solution([4, 3, 2, 1])) print(solution([10])) 위와 같이 풀었습니다. 2. 틀린 코드 def solution(arr): return [item for item in arr if item != min(arr)] or [-1] # Test Cases print(solution([4, 3, 2, 1])) print(solution([10])) 처음에 이렇게 하니까 min(arr)을 매번 계산해야하므로 시간초과가 떴습니다. 편하자고 min()을 썼다가 틀린 코드가 되었네요. def solution(arr): return a..
2023.10.11 -
나누어 떨어지는 숫자 배열 - Python
1. 풀이 코드 def solution(arr, divisor): answer = [item for item in arr if item % divisor == 0] return sorted(answer) if len(answer) > 0 else [-1] # Test Cases print(solution([5, 9, 7, 10], 5)) print(solution([2, 36, 1, 3], 1)) print(solution([3, 2, 6], 10)) 위와 같이 풀었습니다. 2. 다른 사람의 풀이 코드 def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1] 저는 if()를 통해 값을 리턴했는데, 위의 코드를..
2023.10.11 -
음양 더하기 - Python
1. 풀이 코드 def solution(absolutes, signs): return sum([a if b else -a for a, b in zip(absolutes, signs)]) # Test Cases print(solution([4, 7, 12], [True, False, True])) print(solution([1, 2, 3], [False, False, True])) zip()을 사용하여 두 iterable 객체를 묶어 튜플로 만든 뒤, 반복문을 작성하였습니다. zip()을 사용할 때 길이가 다른 객체를 넣을 경우 짧은 길이의 객체에 맞춘다는 사실을 새로 알았습니다. 프로그래머스: https://school.programmers.co.kr/learn/courses/30/lessons/765..
2023.10.11 -
25757 임스와 함께하는 미니게임 - Python
1. 풀이 코드 times, Game = input().split() player = set() for _ in range(int(times)): player.add(input()) if Game == "Y": X = 1 elif Game == "F": X = 2 else: X = 3 print(len(player) // X) set() 집합으로 만들어서 중복을 없앤 뒤에 작업을 진행했습니다. 다만 한 가지 배운 점이라면 list는 append()를, set은 add()를 써야 하더라구요. 2. 다른 사람의 풀이 코드 s,*a=open(0);print(len({*a})//'`YFO'.find(s[-2])) 이렇게 푼 코드를 발견했는데 정말 신기하더라구요. 완전 생소한 풀이였기에 코드를 여러번 읽었습니다...
2023.10.08