본문 바로가기

Problem Solving50

[Python] 프로그래머스 - OX퀴즈 (입문/DAY17) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: "3 + 5 = 8"과 같은 형태의 수식들이 담긴 배열을 받아, 계산 결과가 맞으면 "O", 틀리면 "X"를 판별하는 문제다. 문자열을 공백이나 기호 기준으로 분리하여 실제 수치로 계산하는 능력이 필요하다.이 문제에서 주의할 점은 문자열 상태로는 산술 연산이 불가능하므로, 데이터를 분리(split)한 뒤 숫자형으로 변환하여 비교해야 한다는 점이다. 풀이 방법은 다음과 같다:공백 기준으로 분리 후 조건문 연산: split()으로 숫자와 연산자를 각각 변수에 담아 직접 계산한다.eval() 함수 활용: 문자열로 된 수식을 통째로 계산해주는 함수를 사용해 간결하게 해결한다.풀이 1 : split()과 다중 할당 활용문자열을 쪼개어 각각의 역할을 변.. 2026. 2. 10.
[Python] 프로그래머스 - 자릿수 더하기 (입문/DAY17) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다:매개변수로 주어지는 정수 n의 각 자릿수를 모두 더한 값을 구하는 문제다. 숫자를 문자열로 변환하면 인덱싱이나 반복문 활용이 쉬워진다는 점을 이용해 해결할 수 있다.이 문제에서 주의할 점은 문자열로 변환한 각 문자를 다시 숫자로 계산하기 위해 정수형(int)으로 재변환해야 한다는 점이다. 풀어 볼 방식들은 다음과 같다:문자열 변환 후 반복문 활용: 숫자를 문자열로 바꾸어 하나씩 꺼내어 더한다.sum() 함수와 제너레이터 표현식: 합계를 구하는 내장 함수를 사용해 한 줄로 처리한다.풀이 1 : 문자열 변환과 for문 활용자료형의 특성을 이용해 각 자리를 분리하고 합산하는 정석적인 방법이다.def solution(n): answer = 0 .. 2026. 2. 10.
[Python] 프로그래머스 - n의 배수 고르기 (입문/DAY17) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다:배열 numlist에 들어있는 숫자들 중 정수 n으로 나누어떨어지는 '배수'만 남기고 나머지는 제거하는 문제다. 조건을 만족하는 요소만 골라내는 필터링(Filtering) 로직을 익히기에 아주 좋은 예제다.이 문제에서 주의할 점은 어떤 숫자가 n의 배수인지 확인하기 위해 나머지 연산자(%)를 정확히 활용해야 한다는 점이다. 풀어볼 방법들은 다음과 같다:리스트 컴프리헨션 활용: 반복문과 조건문을 한 줄로 결합하여 새로운 리스트를 생성한다.filter() 함수 활용: 특정 조건(함수)을 만족하는 요소만 걸러주는 내장 함수를 사용한다.풀이 1 : 리스트 컴프리헨션과 람다(Lambda)파이썬에서 리스트를 다룰 때 가장 많이 쓰이는 문법으로, 조건에 맞.. 2026. 2. 10.
[Python] 프로그래머스 - 숫자 찾기 (입문/DAY17) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 정수 num 안에 특정 숫자 k가 포함되어 있는지 확인하고, 있다면 그 숫자가 몇 번째 자리에 있는지 찾아내는 문제다. 파이썬 문자열 메서드들의 특성을 이해하고 활용하면 다양한 방식으로 풀 수 있다.이 문제에서 주의할 점은 프로그래밍의 인덱스는 0부터 시작하지만, 문제에서 요구하는 '자리 수'는 1부터 시작한다는 점이다.생각해본 풀이 방법은,index() 메서드 활용: 값이 없을 때 발생하는 에러를 조건문으로 방지하며 사용한다.find() 메서드 활용: 값이 없을 때 -1을 반환하는 특성을 이용한다.더미(Dummy) 문자 추가: 인덱스 번호와 자리 수를 일치시키기 위해 문자열 앞에 임의의 문자를 넣는다.바다코끼리 연산자(Walrus Opera.. 2026. 2. 10.
[Python] 프로그래머스 - 배열의 유사도 (입문/DAY16) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다:두 문자열 배열 s1과 s2를 비교하여 동일한 원소가 몇 개나 들어있는지 확인하는 문제다. 배열의 각 원소를 하나씩 대조해 보며 같은 것을 카운트하는 방식으로 접근할 수 있다.이 문제에서 주의할 점은 각 배열 내부에는 중복된 원소가 없다는 점이다. 즉, 공통 원소는 무조건 1:1로만 대응된다.풀이 : 반복문과 in 연산자 활용가장 직관적으로 리스트를 순회하며 비교하는 방식이다.def solution(s1, s2): count = 0 for i in s1: # s1의 원소 i가 s2 배열 안에 존재하는지 확인 if i in s2: count += 1 return count- for i .. 2026. 2. 9.
[Python] 프로그래머스 - 문자열 계산하기 (입문/DAY16) 제공되는 문제 설명과 제한사항, 입 출력 예시는 다음과 같다: 문자열로 된 수식을 계산하는 문제다. 단순히 순차적으로 계산할 수도 있지만, 이번에는 스택(Stack)을 활용해 중위 표기법(Infix)을 후위 표기법(Postfix)으로 바꾸어 계산하는 정석적인 알고리즘 방식을 사용해 보았다.이 문제에서 주의할 점은 연산자가 +와 -만 존재하며, 숫자와 연산자가 공백으로 구분되어 있다는 점이다.푸는 로직은,중위 표기법을 후위 표기법으로 변환: 우리가 평소 쓰는 수식(3 + 5)을 컴퓨터가 계산하기 편한 형태(3 5 +)로 바꾼다.후위 표기법 계산: 변환된 식을 스택을 이용해 차례대로 연산한다.알고리즘 배경 지식1. 중위 표기법 → 후위 표기법 변경 방법우리가 흔히 쓰는 3 + 5 - 2 같은 형태를 중위 표.. 2026. 2. 9.