본문 바로가기
728x90
반응형

파이썬438

[백준] 10813번 : 공 바꾸기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 바구니 개수와 공을 옮길 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 바구니에는 각 바구니의 번호와 같은 공이 들어있다. basket = list(i for i in range(N + 1)) 공을 옮길 횟수만큼 반복하며 for _ in range(M) 공을 바꿀 바구니의 번.. 2023. 9. 28.
[프로그래머스] 2 x n 타일링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 처음에 모든 경우마다 팩토리얼로 총경우의 수를 구했는데 시간초과 문제가 발생하였다. 하여 이전 결과를 활용하는 DP 알고리즘으로 해결하였다. 처음 n이 0일 때는 1가지, 1일 때는 1가지이다. 다음 n이 2일 때는 2가지, 3일 때는 3가지, 4일 때는 5가지로 증가한다. 결과를 나열해 보면 1-1-2-3-5-... 의 결과가 나오는데 이를 자세히 보면 다음 결과는 이전 결과와 그전 결과를 더한 결과가 된다. 1, 1, 1+1=2, 1+2=3, 2+3=5의 결과로 .. 2023. 9. 27.
[백준] 10810번 : 공 넣기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 1차원 배열에 관한 문제이다. 바구니에 공을 넣는데 각 바구니에는 하나의 공만 넣을 수 있기 때문에 공이 있다면 바꿔 넣어야 한다. 하지만 그냥 매 순간 해당 번호의 공을 배열의 값으로 넣어주면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 바구니 개수와 공을 넣을 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().spl.. 2023. 9. 26.
[프로그래머스] 숫자 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 최대로 많은 승리를 하여 최대 승점이 얼마인지 구하는 문제이다. 최대한 많이 승리하려면 작은 숫자를 작은 숫자로 이겨야 한다. 하여 두 팀의 숫자를 오름차순으로 정렬한 뒤, A 팀의 최솟값을 기준으로 B 팀의 숫자를 최솟값부터 비교하며 승리한다면 A 팀의 숫자를 제거하고 이를 B 팀의 마지막 숫자까지 반복하며 승리의 횟수를 계산한다. B 팀의 숫자가 뒤로 넘어갔다는 의미는 현재 A 팀의 최솟값보다 작거나 같다는 의미이므로 A 팀의 숫자가 제거되고 다음 A 팀의 최솟값.. 2023. 9. 25.
[파이썬으로 하는 데이터 분석] 6. Pandas 자료구조 - 우당탕탕 개발자 되기 프로젝트 Pandas의 자료구조에는 Series와 DataFrame이 있습니다. Series는 1차원 배열이라고 생각하면 되고 DataFrame은 2차원 배열이라고 생각하면 됩니다. Pandas의 자료구조를 알아야 하는 이유는 실제로 분석을 위해 수집한 데이터는 형태와 속성이 매우 다양하기 때문에 데이터들을 분석에 맞게 정형화시켜줘야 합니다. Series는 데이터가 순차적으로 나열된 1차원 배열의 형태로 파이썬에서 딕셔너리와 유사하다고 생각하면 됩니다. 파이썬에서 생성한 딕셔너리를 pandas 라이브러리의 Series() 메서드에 넣으면 딕셔너리가 Series로 바뀌게 됩니다. Series 자료구조를 살펴보는 이유는 DataFrame에서 원하는 위치를 뽑아 출력을 했을 때 Series 형태로 많이 나오기 때문에 .. 2023. 9. 24.
[백준] 11719번 : 그대로 출력하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력을 받는 방식에 관한 문제라고 할 수 있습니다. 파이썬에서 입력을 받을 수 있는 방법에는 크게 input() 함수와 sys.stdin 모듈의 함수가 있습니다. 전부터 사용해 왔던 sys.stdin.readline() 함수는 엔터키 입력 전까지 한 줄을 입력받는 것입니다. 하지만 이 문제는 입력받은 그대로를 계속 출력해야 하므로 한 줄만이 아니라 전체를 입력받아야 합니다. 하여 sys.stdin.r.. 2023. 9. 24.
[파이썬으로 하는 데이터 분석] 5. Matplotlib - 우당탕탕 개발자 되기 프로젝트 Matplotlib은 시각화 도구 중 하나입니다. Matplotlib 또한 라이브러리 설치를 해주고 import 해줘야 사용 가능합니다. Matplotlib 라이브러리 안 bar() 메서드는 막대그래프를 그려주는 메서드입니다. bar(x축에 사용할 데이터, y축에 사용할 데이터) 형식으로 작성하면 해당 데이터를 x축과 y축으로 갖는 막대그래프가 생성됩니다. 그래프는 각각 레이블, 제목, 크기 조정, 색 조정 등 다양한 추가 기능이 있는데 이러한 부분은 데이터 분석에 있어서 크게 중요한 부분이 아니므로 상황에 따라 적절하게 구글링 하여 사용하면 됩니다. scatter() 메서드는 산점도 그래프를 그려주는 메서드입니다. 산점도 그래프는 산포된 점으로 그래프를 그리는 것인데, 주로 분포를 나타낼 때 많이 사용.. 2023. 9. 23.
[프로그래머스] 문자열 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 문자열을 계속해서 첫 글자와 비교해 분리하고 그 개수를 구하는 문제이다. 문자열을 분리할 때마다 기준이 되는 첫 글자가 바뀌므로 deque 자료구조를 사용하여 문자를 제거하면서 분리하였다. 문자열을 deque 자료구조로 만들어서 제거하며 문자열을 분리하려고 하므로 deque 모듈을 불러온다. from collections import deque 입력받은 문자열을 deque 자료구조로 변경한다. s = deque(list(s)) 분리한 문자열을 저장할 리스트를 생성한다.. 2023. 9. 23.
[백준] 4948번 : 베르트랑 공준 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 지정한 범위에서 소수의 개수를 찾는 문제이다. 매번 소수의 개수를 새로 구할 경우 많은 시간이 소모되어 시간초과가 발생하게 된다. 하여 소수를 구할 최댓값이 정해져 있으므로 최댓값까지 소수를 모두 판단하여 저장한 결과를 활용한다. 시간을 조금 더 단축시키기 위해 소수를 판단할 때는 해당 값의 제곱근까지만 확인한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import s.. 2023. 9. 22.
[프로그래머스] 숫자 변환하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 한 숫자의 다음 변환 결과가 총 3가지가 존재하므로 해당 경우의 결과를 전부 계산하고 그 값을 다음 계산에서 사용해야 한다. 처음에 deque 자료구조를 활용한 너비우선탐색 방법으로 해결해보려고 하였으나 몇몇 테스트에서 시간초과가 발생하였다. 하여 중복되는 계산을 최대한 없애려고 하였고 값을 저장하는 방식 list와 set으로 바꿔주었다. 계산 결과를 저장할 2차원 리스트를 생성하고 초기 0행의 값은 x로 한다. li = [[x]] 원하는 지점에서 종료하기 위해 무한.. 2023. 9. 21.
728x90
반응형