Problem Solving50 [Python] 프로그래머스 - 최댓값 만들기 (2) (입문/DAY20) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다:정수 배열 numbers에서 두 개의 원소를 골라 곱했을 때 나올 수 있는 가장 큰 값을 구하는 문제다. 양수끼리의 곱뿐만 아니라 음수끼리의 곱도 고려해야 한다.절댓값이 큰 음수 두 개를 곱했을 때 양수 곱보다 더 큰 값이 나올 수 있다는 것을 생각하고 풀어보자!배열 정렬: 숫자를 크기순으로 나열하여 양 끝의 값들을 확인한다.경우의 수 비교: 가장 큰 두 수의 곱과 가장 작은(절댓값이 클 수 있는) 두 수의 곱 중 최댓값을 선택한다.풀이 : 정렬을 이용한 최댓값 비교def solution(numbers): # 1. 우선 배열을 오름차순으로 정렬 n = sorted(numbers) # 2. 가장 작은 두 수(n[0], n[.. 2026. 2. 13. [Python] 프로그래머스 - 7의 개수 (입문/DAY19) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 정수 배열 안에 행운의 숫자 '7'이 총 몇 개 들어있는지 찾아내는 문제다. 단순히 배열의 요소가 7인지 확인하는 것을 넘어, 77이나 17처럼 숫자 안에 포함된 '7'까지 모두 세어야 하는 점이 포인트다.이 문제에서 주의할 점은 정수 배열 상태에서 count(7)을 쓰면 77이나 17 내부에 있는 7은 찾지 못한다는 점이다. 따라서 모든 숫자를 문자열로 변환하는 과정이 반드시 필요하다. 여기서 다룬 풀이방법들은 다음과 같다:전체 문자열 변환 후 반복문: 배열을 하나의 큰 문자열로 바꾸어 한 글자씩 검사한다.리스트 컴프리헨션과 count(): 각 요소를 문자열로 바꿔 개수를 센 뒤 합산한다.map()과 join() 활용: 모든 요소를 합친 뒤.. 2026. 2. 12. [Python] 프로그래머스 - 문자열 정렬하기 (2) (입문/DAY18) 영어 대소문자가 섞인 문자열을 모두 소문자로 통일하고, 알파벳 순서대로 정렬하는 문제다. 문자열을 다루는 내장 메서드와 정렬 함수의 특징을 이해하면 간단하게 풀 수 있다.이 문제에서 주의할 점은 문자열은 불변(Immutable) 객체이므로, 정렬하기 위해서는 리스트로 변환하거나 새로운 정렬 결과를 받아야 한다는 점이다. 생각해본 풀이 방법은 다음과 같다:lower()와 리스트 sort() 메서드 활용: 원본 리스트를 직접 수정하여 정렬한다.sorted() 함수 활용: 정렬된 새로운 리스트를 반환받아 사용한다.풀이 1 : lower()와 sort() 메서드 활용리스트 객체 자체가 제공하는 정렬 기능을 사용하는 방식이다.def solution(my_string): # 1. 모든 문자를 소문자로 바꾸고 .. 2026. 2. 12. [Python] 프로그래머스 - 세균 증식 (입문/DAY18) 1시간마다 두 배씩 늘어나는 세균의 총 마리수를 구하는 문제다. 시간이 지남에 따라 개체 수가 어떻게 변하는지 규칙을 찾아내어 수식으로 옮기는 것이 핵심이다.이 문제에서 주의할 점은 매시간 '이전 시간의 개체 수'를 기준으로 두 배가 된다는 점이다.생각해본 풀이 방법은,증식 규칙 파악: 시간이 흐를 때마다 2가 반복해서 곱해지는 형태를 수식화한다.거듭제곱 연산자(**) 활용: 파이썬의 지수 연산자를 사용해 한 줄로 해결한다.풀이 : 거듭제곱을 활용한 수식 구현직접 적어주신 시간에 따른 증식 과정을 살펴보면 일정한 규칙이 보인다.처음 세균 수: n1시간 후: n * 22시간 후: (n * 2) * 2 = n * 2^23시간 후: (n * 2 * 2) * 2 = n * 2^3t시간 후: n * 2^t이 규칙.. 2026. 2. 12. [Python] 프로그래머스 - 제곱수 판별하기 (입문/DAY18) 어떤 자연수를 제곱했을 때 나오는 정수인 '제곱수'를 판별하는 문제다. 주어진 숫자 n의 제곱근이 정수로 딱 떨어지는지 확인하는 것이 핵심이다. 파이썬의 math 모듈을 활용하는 방법과 직접 로직을 설계하는 방법으로 나누어 풀어보았다.이 문제에서 주의할 점은 제곱근을 구했을 때 그 결과가 '정수'인지 '실수'인지 판별하는 기준을 정확히 세우는 것이다. 생각해본 풀이 방법은 다음과 같다:반복문 활용: 1부터 차례대로 제곱해 보며 n과 일치하는지 확인한다.math.sqrt()와 나머지 연산: 제곱근을 구한 뒤 1로 나눈 나머지가 0인지 확인한다.is_integer() 메서드 활용: 실수형(Float) 결과값이 정수인지 판별하는 내장 메서드를 사용한다.풀이 1 : math 모듈 없이 반복문으로 풀기모듈을 사용.. 2026. 2. 12. [Python] 프로그래머스 - 문자열안에 문자열 (입문/DAY18) 주어진 문자열 str1 내부에 또 다른 문자열 str2가 부분적으로 포함되어 있는지 확인하는 문제다. 파이썬은 문자열 탐색을 위해 매우 강력하고 읽기 쉬운 키워드를 제공한다.풀이 : in 연산자와 조건부 표현식 활용 in 연산자 활용: 멤버 연산자를 사용해 특정 문자열이 포함되어 있는지 즉시 확인한다.조건부 표현식(Ternary Operator): 확인 결과를 바탕으로 1 또는 2를 반환한다.def solution(str1, str2): # str2가 str1의 일부인지 확인하고 결과에 따라 1 또는 2 반환 return 1 if str2 in str1 else 2 - str2 in str1 : str1이라는 전체 문자열 안에 str2라는 부분 문자열이 포함되어 있으면 True, 없으면 Fal.. 2026. 2. 12. 이전 1 2 3 4 ··· 9 다음