본문 바로가기
728x90
반응형

Python437

[파이썬으로 하는 데이터 분석] 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.
[백준] 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.
[백준] 13241번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 수의 최소공배수를 구하는 문제이다. 두 수의 최소공배수는 두 수의 공약수의 곱에 각 수를 두 수의 공약수의 곱으로 나눈 몫을 곱한 값이다. ex) 6, 8 → 공약수 = 2 → 2 × (6 / 2) × (8 / 2) → 24 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 최소공배수를 구할.. 2023. 11. 25.
[백준] 11478번 : 서로 다른 부분 문자열의 개수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 문자열의 부분 문자열을 구하고 서로 다른 부분 문자열의 개수를 구하는 문제이다. 서로 다른 부분 문자열의 개수이므로 집합의 형태로 부분 문자열을 저장하면 된다. 하여 세트 자료형을 만들고 모든 부분 문자열을 세트에 추가한 뒤, 세트의 원소 개수를 출력하면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 문자열을 입력받는다. S = sys.stdin.readline().rstrip() 서로 다은 부분 문자열을 저장할 세트를 생성한.. 2023. 11. 24.
[백준] 1269번 : 대칭 차집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 집합 A, B의 대칭 차집합 원소의 개수를 구하는 문제이다. 집합은 원소가 중복될 수 없기 때문에 집합의 연산을 수행할 때 set() 함수를 활용해 중복을 제거해 주고 연산을 수행한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 두 집합의 원소 개수를 입력받는다. a, b = map(int, sys.stdin.readline().split()) 집합 .. 2023. 11. 23.
728x90
반응형