본문 바로가기
728x90
반응형

Python437

[백준] 1193번 : 분수찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 몇 번 분수를 출력할 것인지 입력받는다. X = int(sys.stdin.readline()) 대각선 별로 각 라인의 누적합만큼 번호를 갖는다. 또한 각 라인의 분모, 분자의 합은 라인 수에 1을 더한 값이다. 하여 분수를 구하려면 일단 몇 번 라인에 있는 분수인지 알아야 한다. 하여 분수의 개수와 라인 번호를 구한다. 분수의 개수를 구하기 위한 변수를 생성하고 초기화한다. count = 0 라인 번호를 구하기 위한 변수를 생성하고 초기화한다. line = 1 .. 2023. 7. 13.
[백준] 2231번 : 분해합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 생성자를 구할 자연수를 입력받는다. N = int(sys.stdin.readline()) 생성자를 저장할 변수를 생성하고 생성자를 찾지 못했을 경우 값으로 초기화한다. answer = 0 입력받은 수까지 반복하며 생성자를 찾는다. for i in range(N) 각 자릿수를 저장하기 위해 값을 변수에 .. 2023. 7. 13.
[백준] 1181번 : 단어 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 입력받은 단어들을 문자열 길이순으로 오름차순 정렬을 한 상태에서 동일한 길이는 또 사전순으로 정렬해야 하므로 각 단어와 문자열의 길이를 딕셔너리로 저장하여 정렬한다. sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys 전체 단어의 개수를 입력받는다. N = int(sys.stdin.readline()) 입력받은 단어와 그 길이를 저장할 딕셔너리를 생성한다. d = {} .. 2023. 7. 13.
[프로그래머스] 가장 가까운 같은 글자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 추출한 글자를 저장하기 위한 리스트를 생성한다. word = list() 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s 만약 추출한 글자 리스트에 추출한 문자가 있다면 if (i in word) 처음 나온 문자가 아니므로 같은 글자가 몇 칸 앞에 있는지 구한다. 무조건 앞에 있으므로 거리를 저장할 변수를 생성하고 1로 초기화한다. count = 1 추출한 글자 리스트의 제일 뒤부터 문자를 하나씩 추출한다. for j in range(len(answer) - 1.. 2023. 7. 12.
[프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 물을 기준으로 앞, 뒤로 배치해야 하므로 appendleft() 함수와 append() 함수를 사용하기 위해 deque 자료구조를 활용한다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 각 음식 배치를 저장할 deque을 생성한다. d = deque() 처음에 기준이 되는 물을 배치한다. 각 음식은 인덱스 값을 추가한다. d.append(0) 각 음식을 추가하는 방식으로 배치하기에 음식을 칼로리가 높은 순으.. 2023. 7. 12.
[프로그래머스] N개의 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 리스트 중 앞에서 2개씩 꺼내어 두 수의 최소공배수를 구하고 구한 공배수를 다시 리스트의 제일 앞에 추가하며 최소공배수가 1개가 될 때까지 구한다. 구한 공배수를 제일 앞에 추가할 때 appendleft() 함수를 사용하기 위해 리스트를 deque 자료구조로 바꿔 사용해야 하는데 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 입력받은 리스트를 deque 자료구조로 변환한다. queue = deque(.. 2023. 7. 12.
[프로그래머스] 점프와 순간 이동 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 풀 때 어떻게 하면 건전지를 최소로 사용할 수 있을지 생각하면서 순간 이동을 많이 사용해야겠다는 생각을 했다. 1부터 각 경우마다 최소 건전지 사용 횟수를 계산해 보다가 6에서 입출력 예 설명을 보니 6은 1로 점프 후, 2로 순간 이동, 다시 3으로 점프, 6으로 순간 이동한 결과를 확인하게 되었다. 하여 무조건 먼저 순간 이동으로 최대로 이동을 하면 안 되겠다는 생각이 들었다. 이후, 2로 계속 나눠보기도 하고 3으로 나눠보기도 하고 계속 고민을 하던 중 각 수를.. 2023. 7. 12.
[백준] 9095번 : 1, 2, 3 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 이전의 결과를 활용하여 해결하는 다이내믹 프로그래밍 문제이다. 여기서 이전 수의 1, 2, 3 조합의 경우에 모두 1을 추가하고 2와 3으로만 구성된 조합을 찾아 추가하면 다음 수의 1, 2, 3 조합의 경우가 도출된다. 해당 방법으로 1부터 입력받은 숫자까지 경우의 수를 구하고 입력받은 숫자의 각 경우의 순열 결과를 팩토리얼 함수로 구하면 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 전체 테스트 케이스 횟수를 입력받는다. T = int(sy.. 2023. 7. 12.
[백준] 2178번 : 미로 탐색 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 알고리즘 분류에 그래프 탐색과 너비 우선 탐색이 있길래 2차원 그래프를 만들고 너비 우선 탐색으로 해결해보려고 했으나 쉽지 않았다. 끊임없는 고민을 하던 중 시간이 초과되더라도 모든 경우의 수를 생각해 보기로 했다. 하여 각 자리마다 상, 하, 좌, 우로 이동할 수 있는 경우를 생각해 보았다. 모든 경우를 생각하던 중 다음 위치로 이동하기 위해서 최소 얼마의 이동이 있었는지 기억해 두면 마지막 칸까지 모든 경우의 수를 확인했을 때 최소한의 이동 거리를 구할 수 있.. 2023. 7. 11.
[백준] 1085번 : 직사각형에서 탈출 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 1. 문제 설명 2. 풀이과정 현재 위치 좌표와 직사각형의 오른쪽 위 꼭짓점 좌표를 입력받는다. x, y, w, h = map(int, sys.stdin.readline().split()) 현재 위치에서 직사각형 경계선까지의 가로와 세로 거리를 저장한다. length = x width = y 만약 현재 위치에서 직사각형 경계선까지 오른쪽 가로 거리가 더 짧으면 if (x > w - x) 직사각형 경계선까지의 가로 거리를 오른쪽 가로 거리로 수.. 2023. 7. 11.
728x90
반응형