본문 바로가기
728x90
반응형

Baekjoon243

[백준] 1920번 : 수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 정수의 개수를 입력받는다. N = int(sys.stdin.readline()) 각 정수를 입력받아 리스트로 저장한다. A = list(map(int, sys.stdin.readline().split())) 테스트 횟수를 입력받는다. M = int(sys.stdin.readline(.. 2023. 7. 15.
[백준] 2775번 : 부녀회장이 될테야 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 테스트 케이스 개수를 입력받는다. T = int(sys.stdin.readline()) 각 테스트 케이스 횟수만큼 반복하며 for _ in range(T) 층 수를 입력받고 k = int(sys.stdin.readline()) 호 수를 입력받는다. n = int(sys.stdin.readline()) 각 층과 호 수별 사람의 수를 리스트로 생성한다. n_people = .. 2023. 7. 15.
[백준] 10989번 : 수 정렬하기 3 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 어떤 정렬 방법을 사용하더라도 메모리 초과가 발생한다. 하여 메모리를 입력의 최댓값인 10,000까지로 지정하여 각 값을 입력받을 때마다 해당 위치에 개수를 증가시킨 후, 개수 별로 출력해 주는 방식으로 해결하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 입력할 수의 개수를 입력받는다. N = int(sys.stdin.readline()) 최대 입력가능 값인 10,000까지 인덱스 번호가 .. 2023. 7. 15.
[백준] 2667번 : 단지번호붙이기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 넓이 우선 탐색을 활용하여 상, 하, 좌, 우 4방향을 매번 탐색해 각 단지별로 연결된 집을 찾아 개수를 세는 방법으로 해결하였다. 그래프를 생성하고 각 단지의 시작을 찾아 넓이 우선 탐색을 진행하고 탐색한 집은 1에서 0으로 바꾸어 탐색을 진행하였다. 각 단지별로 집의 개수를 각각 세어 저장하고 이를 정렬해 출력해 주었다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import .. 2023. 7. 15.
[백준] 2606번 : 바이러스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 그래프 탐색을 활용하여 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 깊이 우선 탐색을 활용하여 해결하였다. 깊이 우선 탐색을 수행하는 함수를 생성한다. def Search(start) 해당되는 정점을 탐색한 것으로 표시한다. result[start] = True 해당 정점과 연결되는 정점들을 하나씩 추출한다. for i in graph[start] .. 2023. 7. 15.
[백준] 2609번 : 최대공약수와 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 두 수를 입력받는다. num1, num2 = map(int, sys.stdin.readline().split()) 최대공약수를 저장할 변수를 생성하고 1로 초기화한다. Max = 1 나눌 변수를 생성하고 1초 초기화한다. i = 1 원하는 시점에서 종료하기 위해 무한 반복문을 사용한다. while (True) 만약 두 수가 모두 나누어 떨어지면 if (num1 % i == 0) and (num2 .. 2023. 7. 13.
[백준] 1003번 : 피보나치 함수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 테스트 케이스 횟수를 입력받는다. T = int(sys.stdin.readline()) 테스트 케이스 횟수만큼 반복하며 for _ in range(T) 각 테스트 케이스 별로 피보나치 수를 입력받는다. num = int(sys.stdin.readline()) 각 피보나치 수의 0의 개수와 1의 개수를 저장할 리스트를 생성하고 초기의 0과 1의 0의 개수와 1의 개수를 리스트로 묶어 저장한다. li = [[1, 0], [0, 1.. 2023. 7. 13.
[백준] 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.
728x90
반응형