본문 바로가기
728x90
반응형

파이썬438

[백준] 1912번 : 연속합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 문제가 자꾸 시간초과가 나서 문제를 어떻게 계속 접근을 할지에 대해 고민하다가 알고리즘 분류에서 다이나믹 프로그래밍을 참고하여 해결하였다. 수열 중 합이 최대가 되도록 하기 위해 첫 번째 원소부터 마지막 원소까지 자신과 자신 + 앞 원소를 비교하여 더 큰 값을 저장하도록 구현하고 마지막에 제일 큰 값을 찾도록 구현하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 전체 수의 개수를 .. 2023. 8. 8.
[프로그래머스] [3차] 압축 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 딕셔너리로 사전을 생성한다. d = {} 1부터 26까지 반복하며 for i in range(1, 27) 영문자 A부터 Z까지를 키로 하여 숫자를 저장한다. d[chr(i + 64)] = i 현재 첫 글자 위치를 저장할 변수를 생성하고 초기화한다. now = 0 현재 첫 글자가 단어의 길이를 넘어가기 전까지 반복한다. while (now < len(msg)) 문자열 길이를 저장할 변수를 생성하고 1로 초기화한다. cnt = 1 현재 단어의 마지막 글자 위치를 저장할 변수를 생성하.. 2023. 8. 8.
[백준] 15650번 : N과 M (2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 조합을 활용하기 위해 combinations 함수를 불러온다. from itertools import combinations 두 자연수를 입력받는다. N, M = map(int, sys.stdin.readline().split()) 조합에서 사용할 숫자들을 리스트로 생성한다. num = list(i for i in range(1,.. 2023. 8. 7.
[프로그래머스] 기사단원의 무기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 구매할 무기의 공격력을 저장할 리스트를 생성하고 최소 값인 1로 초기화한다. result = [1] * number 1은 약수가 1 자기 자신으로 1개이다. 하여 약수의 개수를 구할 필요가 없으므로 다음 숫자인 2부터 시작하여 기사단원의 수만큼 각 약수의 개수를 구한다. for i in range(2, number + 1) 각 수별로 약수를 저장할 리스트를 생성한다. li = list() 약수는 1부터 자기 자신까지 수 중에 나누어 떨어지는 수인데, 여기서 자기 자신까지 모두 확.. 2023. 8. 7.
[백준] 1924번 : 2007년 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 요일을 알고 싶은 날짜를 입력받는다. m, d = map(int, sys.stdin.readline().split()) 2007년의 월별 날짜수를 저장한다. month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 2007년 1월 1일이 월요일이.. 2023. 8. 6.
[프로그래머스] 네트워크 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 컴퓨터들 간의 연결을 그래프로 나타내기 위해 리스트를 생성한다. graph = list() 컴퓨터 수만큼 반복하며 for _ in range(n) 각 컴퓨터 별로 연결된 컴퓨터의 정보를 저장할 공간을 만들어준다. graph.append([]) 컴퓨터 수만큼 반복하고 for i in range(n) 각 컴퓨터 별로 연결된 컴퓨터를 파악하기 위해 반복하며 for j in range(n) 만약 같은 컴퓨터 번호가 아니고 두 컴퓨터가 연결되어 있으면 if (i != j) and (com.. 2023. 8. 6.
[백준] 1932번 : 정수 삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 올 수 있는 이전의 길의 결과 중 가장 최댓값을 계속 적으로 선택하여 오면 된다. 하여 처음부터 다음 길을 갈 때 다음 길에 지금까지 온 길의 합을 계속 저장하고, 마지막에 도착했을 때 마지막 길들 중 최댓값을 구하면 해결되는 문제이다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 삼각형의 크기를 입력받는다. n = int(sys.stdin.readline()) 삼각형을 저장할 리스트를 생성한다. triangle = list() 삼각.. 2023. 8. 5.
[프로그래머스] k진수에서 소수 개수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 소수 판별을 할 때 반복을 줄이기 위해 해당 수의 제곱근까지만 반복하는데 이때 sqrt() 함수를 사용하기 위해 math 모듈을 불러온다. import math 해당 수를 해당 진법으로 바꾼 결과를 저장할 리스트를 생성한다. result = list() 해당 수가 0이 되기 전까지 반복하며 while (n > 0) 해당 수를 진법으로 나눈 나머지를 문자열 형태로 추가하고 result.append(str(n % k)) 해당 수를 진법으로 나눈 몫의 결과로 다시 저장한다. n //=.. 2023. 8. 5.
[백준] 2309번 : 일곱 난쟁이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 9명 중 일곱 난쟁이가 될 수 있는 모든 경우를 구하고 각 경우마다 키의 합이 100이 되는지 확인하면 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 조합 함수인 combinations() 함수를 사용하기 위해 combinations 모듈을 불러온다. from itertools import combinations 난쟁이들의 키를 저장할 리스트를 생성한다... 2023. 8. 4.
[프로그래머스] 최고의 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 집합을 구하고 해당 집합에서 원소의 곱이 최고인 집합을 구하면 된다. 여기서 각 원소의 곱이 최대이려면 각 원소의 크기가 최대한 서로 비슷해야 한다. 하여 각 원소의 값은 우선 구하고자 하는 합을 원소의 개수로 나눈 몫의 결과를 우선 저장하고 만약 그 합이 원하는 합의 값보다 작을 수 있으므로 각 원소에 합을 원소의 개수로 나눈 나머지만큼 분배하여 더해주면 해당 집합이 최고의 집합이 된다. 만약 자연수 개수가 원소의 합보다 크면 if (n > s) 제일 작은 자연.. 2023. 8. 4.
728x90
반응형