본문 바로가기

전체 글

(52)
프로그래머스 155651 Python / 호텔 대실 안녕하세요. 이번엔 프로그래머스 lv2 155651 호텔 대실 문제를 파이썬으로 풀어보겠습니다. 문제 링크는 여기입니다. https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 효율적인 계산을 하려면 누적합 방식을 사용하는 것이 좋아보입니다. 누적합이란, 어떠한 배열 N이 있을 때, 새로운 배열 sum에 합을 누적시켜 저장하는 것입니다. 예를 들어 N = [ 1, 3, 2, 5, 1 ] 이라고 하면, 누적합을 저장할 리스트 sum을 만들어서, ..
프로그래머스 12953 Python / N개의 최소공배수 안녕하세요. 이번엔 프로그래머스 12953 N개의 최소공배수 문제를 파이썬으로 풀어보겠습니다. 문제 링크는 여기입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12953?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 여러 수의 최소공배수는 각자의 최소공배수를 계속 구해주면 됩니다. 예를 들어, 2, 6, 8, 14 라고 한다면 2와 6의 최소공배수를 구하고, ---- 6 그 최소공배수인 6과 8의 최소공배수를 구하고, ----- 24 그 최소공배수인 24와..
프로그래머스 86051 Python / 없는 숫자 더하기 안녕하세요. 프로그래머스 86051 lv1 없는 숫자 더하기 문제입니다. 파이썬으로 풀어보겠습니다. 문제 링크는 아래입니다. https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 푸는 방법은 몇 개 있겠습니다. 근데 어떤 방법을 써도 시간복잡도를 고려하지 않아도 될만큼 주어지는 숫자가 적습니다. 따라서 그냥 0부터 9까지 하나하나 있는지 검사하면 되겠습니다. 코드는 이렇게 되겠네요. def solution(numbers): answer = 0 ..
프로그래머스 77884 Python / 약수의 개수와 덧셈 안녕하세요. 이번엔 프로그래머스 lv1 77884번 약수의 개수와 덧셈 문제를 파이썬으로 풀어보겠습니다. 링크는 다음과 같습니다. https://school.programmers.co.kr/learn/courses/30/lessons/77884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 확실히 프로그래머스가 깔끔하고 설명도 자세해서 풀기는 편한 것 같습니다. 약수의 갯수를 구할 때는, 여러 방법이 있겠습니다만 가장 간단한 방법은 1부터 해당 숫자까지 반복문을 돌리고, 해당 숫자를 반복문 인덱스로 나눈 나머지가 0이면 약수입니다. 파이썬으로 코드를..
백준 2231 Python / 분해합 / 브론즈2 안녕하세요. 이번 문제는 백준 2231 분해합 문제입니다. 파이썬으로 풀어보겠습니다. 링크는 다음과 같습니다. https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 분해합을 구하기 위해서는, 숫자 + 숫자 각 자리 수의 합 을 구하면 됩니다. 파이썬을 이용하면, 숫자를 문자열로 변환 후, map 함수를 이용해서 한 글자씩 int로 바꿔준다면 간단하게 구할 수 있습니다. 1부터 시작해서 주어진 숫자가 될 때까지 반복문..