본문 바로가기
728x90
반응형

전체 글510

[백준] 12789번 : 도키도키 간식드리미 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 승환이가 간식을 받을 수 있는지 없는지 판별하는 문제이다. 승환이가 간식을 받으려면 승환이 앞에 서 있는 학생들이 모두 간식을 받아야 한다. 대기열은 한 사람씩 들어갈 수 있고 마지막으로 들어온 순서대로 나갈 수 있으므로 스택 구조를 활용한다. 대기열의 제일 뒤에 서 있는 학생이 현재 순서인지 먼저 판별하고 그게 아니면 현재 줄 서 있는 학생을 차례대로 판별하며 간식을 주거나 대기열로 보낸다. 서 있는 학생을 다 판별했.. 2023. 12. 3.
[백준] 4949번 : 균형잡힌 세상 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 괄호를 기준으로 균형 잡힌 문자열인지 판단하는 문제이다. 소괄호와 대괄호가 올바르게 짝지어져 있으면 균형 잡힌 문자열이고, 그렇지 않다면 균형 잡힌 문자열이 아니다. 괄호가 올바르게 짝지어져 있는지 판단하는 방법은 여는 괄호와 바로 뒤에 닫는 괄호가 일치해야 한다. 문자열의 문자를 확인하며 괄호를 스택에 추가한다. 여기서 닫는 괄호가 나왔을 때, 제일 위에 저장되어 있는 괄호가 동일한 종류의 여는 .. 2023. 12. 2.
[파이썬으로 하는 데이터 분석] 13. 파일 다루기 - 우당탕탕 개발자 되기 프로젝트 데이터 분석을 하려면 파이썬의 라이브러리에 있는 데이터들을 가져와 분석을 해볼 수도 있지만 외부에서 데이터를 가져와 분석을 해야 하는 경우가 대부분입니다. 이처럼 외부에서 데이터를 가져올 때는 데이터가 저장되어 있는 외부 파일을 불러와야 합니다. 외부 파일을 불러오는 방법에는 pandas 라이브러리의 read_csv(), read_excel(), read_json() 등의 함수를 사용하면 됩니다. 각 함수는 불러오려는 파일의 확장자에 따라 사용하시면 됩니다. 함수를 적고 () 안에 파일의 경로나 이름을 적어주면 해당 파일을 불러올 수 있습니다. pd.read_csv('test.csv')와 같은 형식으로 작성해 주면 됩니다. 반면에 만든 DataFrame을 파일로 저장하고자 할 때는 pandas 라이브러리.. 2023. 12. 2.
[백준] 28278번 : 스택 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 명령어의 개수를 입력받는다. N = int(sys.stdin.readline()) 빈 스택을 생성한다. stack = list() 명령어 개수만큼 반복하며 for _ in range(N) 1개 이상의 명령어가 입력될 수 있으므로 명령어를 공백으로 분리해 리스트에 저장한다. op = list(map(int, sys.stdin.readline().split()).. 2023. 12. 1.
[백준] 13909번 : 창문 닫기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 13909번: 창문 닫기 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 창문을 열고 닫는 과정을 반복하며 최종적으로 열려있는 창문의 개수를 구하는 문제이다. 각 수를 돌아가며 창문을 열고 닫을 수 있지만 위 문제에서 창문의 최대 개수는 21억 개까지 가능하므로 모두 구하는 것은 효율적이지 못한 방법이다. 창문의 개수가 5개이면 최종적으로 1, 4번 창문이 열려있다. 창문의 개수가 10개이면 최종적으로 1, 4, 9번 창문이 열려있다. 창문의 개수가 20개이면 최종적으로 1, 4, 9.. 2023. 11. 30.
[백준] 17103번 : 골드바흐 파티션 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 수의 골드바흐 파티션 개수를 구하는 문제이다. 골드바흐 파티션을 파악하려면 수의 합을 이루는 2개의 숫자가 모두 소수이어야 한다. 여기서 수의 최댓값이 1,000,000이므로 범위가 크다. 해당 범위의 수까지 소수를 판별하려면 많은 시간이 소요되기 때문에 해당 문제에서는 "에라토스테네스의 체" 방법을 활용하여 해당 범위 안의 소수를 구한다. "에라토스테네스의 체"는 제일 작은 소수인 2부터 해당 수의 배수를 모두 제거하고,.. 2023. 11. 29.
[백준] 4134번 : 다음 소수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4134번: 다음 소수 정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys sqrt() 함수를 사용하기 위해 math 모듈을 불러온다. import math 테스트 케이스의 개수를 입력받는다. T = int(sys.stdin.readline()) 소수를 판별할 함수를 생성한다. def check(x) 2부터 자기 자신의 제곱수 정수 부분까지 반복하며 for i in range(2, int(math.sqrt(x)) + 1) 만약 판별할 수가 나누어 떨어지면 if (x % i.. 2023. 11. 28.
[백준] 2485번 : 가로수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 새로 심어야 하는 가로수의 개수를 구하는 문제이다. 이미 심어져 있는 가로수를 보고 모든 가로수의 간격이 동일해지도록 가로수를 더 심어야 한다. 모든 가로수의 간격이 동일해지려면 이미 심어져 있는 가로수 간격들의 최대공약수를 구하여 그 수만큼 간격을 맞춰 새 가로수를 심으면 된다. 최대공약수는 gcd() 함수를 활용하여 구할 수 있고, 간격을 최대공약수로 나눈 몫에 1을 뺀 개수만큼 해당 간격에 새로 가로수를 심.. 2023. 11. 27.
[파이썬으로 하는 데이터 분석] 12. 산술연산 - 우당탕탕 개발자 되기 프로젝트 산술연산은 말 그대로 덧셈, 뺄셈, 곱셉, 나눗셈 등의 연산을 말합니다. 산술연산의 대상은 pandas의 자료구조를 대상으로 이루어집니다. 먼저 pandas의 Series를 생성해 주고 생성해 준 Series에 산술연산을 적용시키면 Series에 대한 연산이 일괄 적용되어 반환됩니다. 여러 Series를 서로 연산해 줄 수도 있습니다. 여러 Series를 연산하면 각각에 매칭되는 각 요소끼리 연산이 이루어집니다. 여러 Series의 연산은 각 동일한 위치의 값을 각각 연산해 주는데 해당 각 Series의 요소 순서가 달라도 일치하는 요소끼리 연산하여 그 결과를 반환해 줍니다. 각 Series의 요소 개수가 다르다면 동일하게 존재하는 요소끼리만 연산하여 그 결과를 반환하는데 만약 동일하게 존재하지 않고 몇.. 2023. 11. 26.
[백준] 1735번 : 분수 합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 분수를 입력받아 그 합을 구하는 문제이다. 두 분수를 더했을 때, 그 결과를 기약분수로 구해야 한다. 기약분수는 더 이상 약분되지 않는 분수이므로 각 분자와 분모의 최대공약수를 구해 분자와 분모를 이로 나눠야 한다. 최대공약수는 유클리드 호제법을 활용하여 빠르게 구할 수 있는데, 유클리드 호제법이란 두 수를 서로 나누어 최대공약수를 구하는 방법이다. 유클리드 호제법은 "a % b = r이라고 할 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같고, 이를 다시 b .. 2023. 11. 26.
728x90
반응형