본문 바로가기

Problem Solving50

[Python] 프로그래머스 - 문자열 정렬하기 (1) (입문/DAY12) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 정렬은 sort 메서드와 sorted 함수로 간단하게 풀 수 있다.하지만 이 문제에서 주의할 점은 우리가 정렬할 대상의 자료형이 문자열 이라는것과,문자열 안에 영어 소문자와 숫자가 있는데 그 중 숫자만 골라 오름차순으로 정렬한 리스트를 반환해야 한다는 것! 이 점 명시해서 풀어보자.1. 문자열의 각 요소를 비교해서 숫자면 따로 리스트에 추가해놓고,2. 이후 정렬을 진행하는게 좋아보인다. 문자열메서드 isdigit은 해당 값이 숫자이면 True를 반환하고, 아니면 False를 반환한다고 한다.if문은 조건이 True이면 실행문을 실행하니 딱 맞을것이다. 풀이1 : 정렬시 sort 메서드 사용def solution(my_string): an.. 2026. 2. 5.
[Python] 프로그래머스 - 모음 제거 (입문/DAY12) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 문제 설명을 보고 생각난 방법은 for 반복문으로 my_string의 문자열의 요소를 하나씩 가져와 모음 ["a","e","i","o","u"] 와 비교해 모음이 아닌 값들을 모아 반환하는 것이다.def solution(my_string): return ''.join([i for i in my_string if i not in ["a","e","i","o","u"]]) List Comprehension을 사용해 모음이 아닌 요소들을 list로 모아놨고,반환해야하는 자료형이 문자열이기 때문에 각 요소들을 문자열로 이어주는 문자열메서드 join을 사용했다. List Comprehension이라 이해가 잘 안 될거같아 풀어서 .. 2026. 2. 5.
(프로그래머스/입문)DAY11: 팩토리얼 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: i! 조건을 만족하는 가장 큰 정수 i를 반환해야 한다.메인 로직은, 만약 1!부터 10! 까지 모든 값을 n과 비교해 본 후 조건에 벗어나는 i! i 의 이전값을 반환할것이다. 이전값은 곧 i! def factorial(num): m = 1 for i in range(num, 0, -1): m *= i return mdef solution(n): for i in range(1, 11): # 제한사항에 n은 10! 인 3,628,800 보다 크지 않다고 했으니 10까지 if factorial(i) > n: break return i -1 from math import .. 2026. 2. 4.
(프로그래머스/입문)DAY11: 최댓값 만들기(1) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 정해진 숫자들 중 곱했을 때 만들 수 있는 가장 큰 값은?곱해서 가장 큰 값을 만드려면 가장 큰 값들끼리 곱해야한다.즉, 매개변수로 주어지는 numbers의 요소들 중 가장 큰 두 값을 곱해야 한다.numbers의 요소가 어떻게 주어지던 가장 큰 값을 가져오려면numbers를 크기대로 나열해서 (오름차순 일 경우) 맨 마지막과 그 이전 값이 가장 큰 두 값일 것이다.def solution(numbers): sorted_num = sorted(numbers) return sorted_num[-1] * sorted_num[-2] 우선 크기대로 나열하기 위해 sorted 함수를 사용했다.따로 지정하지 않았기에 오름차순으로 정렬되니 큰 값.. 2026. 2. 4.
(프로그래머스/입문)DAY11: 합성수 찾기 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 정수는 크게 합성수, 소수로 나눌 수 있는데- 합성수 : 약수의 개수가 세 개 이상인 수. 1과 자기자신 이외의 수로도 나눠 떨어지는 수.- 소수 : 약수가 두개인 수. 1과 자기자신으로만 나눠 떨어지는 수.이렇게 볼 수 있다. 우리는 여기서 소수가 아닌 합성수를 구해야한다.어떤 수가 1과 자기 자신 이외의 수로 나눠 떨어지면 합성수라고 간주하고,아니면 소수라고 간주해서 풀 것이다. def not_prime(num): for i in range(2, num): if num % i == 0: return numdef solution(n): lst = [] for i in range(2, n + 1.. 2026. 2. 4.
(프로그래머스/입문)DAY11: 주사위의 개수 DAY11의 첫 번째 문제!제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: box로 받은 직육면체의 각 모서리 길이에 주사위의 모서리 길이(n)를 나누면 각 모서리별로 몇 개의 주사위가 들어가는지 알 수 있다.주의할 점은, 주사위의 개수는 정수여야 한다.또한 (주사위의 개수) * n 은 직육면체의 각 모서리 길이를 넘어서면 안된다.그래서 직육면체의 각 모서리 길이를 n 으로 나눌 때 나눈 값의 정수 부분만 가져오는 연산자인 // 연산자를 사용했다.마지막으로 각 모서리별로 들어가는 주사위의 수를 모두 곱해주면 상자에 들어갈 수 있는 주사위의 최대 개수를 return 한다.def solution(box, n): return (box[0] // n) * (box[1] // n) * (box.. 2026. 2. 4.