Problem Solving50 [Python] 프로그래머스 - 삼각형의 완성조건 (1) (입문/DAY13) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 이번 문제는 세 개의 선분으로 삼각형을 만들 수 있는지 판단하는 로직을 구현하는 것이다. 삼각형이 성립하기 위한 기본 원리만 알면 간단하게 풀 수 있는 문제지만, 어떤 메서드를 쓰느냐에 따라 코드를 더 깔끔하게 다듬을 수 있다.이 문제에서 주의할 점은 '가장 긴 변의 길이'를 찾아내고, 나머지 두 변의 합과 비교해야 한다는 점!이를 명시해서 풀어보자.sides 배열에서 가장 긴 변을 찾기 위해 정렬(Sort)을 이용하고,가장 긴 변이 나머지 두 변의 합보다 작은지 비교한다.파이썬의 삼항 연산자(Conditional Expression)를 사용해 한 줄로 결과를 반환한다.풀이 1 : sort() 메서드 활용리스트 자체를 정렬해버리는 sort().. 2026. 2. 6. [Python] 프로그래머스 - 중복된 문자 제거 (입문/DAY13) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 이번 문제는 문자열 my_string에서 중복된 문자를 제거하고, 원래의 순서를 유지한 채로 남은 문자들을 이어 붙여 반환하는 문제다.단순히 중복을 없애는 것을 넘어, '순서'와 '탐색 효율성'이라는 두 마리 토끼를 잡기 위해 고민할 수 있는 문제였다. 가장 먼저 떠오르는 건 중복을 허용하지 않는 set이지만, 문제에는 기존 순서를 지켜야 한다는 제약이 숨어 있다.이 점을 주의하자.풀이 1 : set을 이용한 단순 중복 제거 (실패한 풀이임)가장 먼저 set의 고유한(unique) 특성을 이용해 보았다.def solution(my_string): return ''.join(set(my_string)) 문제점: set은 무작위성을 가지기 .. 2026. 2. 6. [Python] 프로그래머스 - 배열 원소의 길이 (입문/DAY13) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 이번 문제는 문자열들이 담긴 리스트 strlist를 받아서, 각 단어가 몇 글자인지 그 길이를 계산해 리스트로 반환하는 문제다.이전 문제들에서 활용했던 List Comprehension을 사용하면 단 한 줄로도 아주 깔끔하게 해결할 수 있다.이를 명시해서 풀어보자.리스트의 원소(문자열)를 하나씩 꺼내서,파이썬 내장 함수인 len()을 이용해 길이를 구하고,그 값들을 다시 리스트로 모으면 된다.풀이 1 : for문을 활용한 풀어서 쓰기List Comprehension이 익숙하지 않다면, 우선 가장 기본적인 반복문으로 흐름을 이해해보는 것이 좋다.def solution(strlist): answer = [] for i in strlis.. 2026. 2. 6. [Python] 프로그래머스 - 컨트롤 제트 (입문/DAY13) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 이번 문제는 공백으로 구분된 문자열 속에서 숫자들을 더해나가다가, "Z"를 만나면 바로 직전에 더했던 숫자를 취소(제거)하는 로직을 구현하는 것이다.이전 문제들과 마찬가지로 문자열을 어떻게 다루고, 조건에 따라 리스트를 어떻게 조작하는지가 핵심이다. 특히 이번 풀이에서는 split() 메서드의 특성과 스택(Stack) 구조의 원리를 잘 활용해 보았다.이를 명시해서 풀어보자.문자열을 공백 기준으로 나누어 리스트로 만들고,리스트를 하나씩 확인하며 숫자면 바구니에 넣고, "Z"면 가장 최근에 넣은 숫자를 뺀다.마지막에 바구니에 남은 숫자들의 총합을 구한다.풀이 : split()과 pop()을 활용한 스택 구조 풀이내가 세운 전략을 코드로 옮겨보았다.. 2026. 2. 6. [Python] 프로그래머스 - 소인수분해 (입문/DAY12) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 이번 문제는 자연수 n의 소인수를 오름차순으로 담은 배열을 반환하는 함수를 만드는 것이다. 단순히 답을 내는 것보다, 어떻게 하면 더 효율적으로 로직을 개선할 수 있을지 고민하며 풀어보았다. 이 문제에서 주의할 점은 소인수를 찾는 과정에서 시간 복잡도를 고려해야 한다는 것과,최종 결과값의 중복 제거 및 정렬이 필요하다는 점!이를 명시해서 단계별로 풀어보자.풀이 1 : 소수 구하기 함수를 활용한 접근 (시행착오)가장 먼저 생각했던 방식은 소수를 구하는 별도의 로직을 짜서 접근하는 것이었다.def get_prime(num): return [i for i in range(2, 1+num) if num%i==0]def solution(n): .. 2026. 2. 5. [Python] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (입문/DAY12) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다:이번 문제는 문자열 my_string 안에 섞여 있는 숫자들을 찾아서 그 값들의 합을 반환하는 함수를 만드는 것이다. 지난번 숫자를 골라 정렬했던 문제와 결이 비슷해서 응용할 수 있다.이 문제에서 주의할 점은 추출한 숫자들이 여전히 문자열 상태라는 것과,이를 계산하기 위해서는 정수형으로 변환해야 한다는 점.이를 명시해서 풀어보자.문자열을 하나씩 돌면서 숫자인지 확인하고(isdigit),숫자라면 정수로 바꿔서 리스트에 담은 뒤,마지막에 리스트 요소들의 총합을 구하면 된다.풀이 1 : 가장 기본적인 for문 활용먼저 지난번 정렬 문제에서 사용했던 방식처럼 차근차근 접근해 볼 수 있다.def solution(my_string): answer =.. 2026. 2. 5. 이전 1 2 3 4 5 6 7 ··· 9 다음