본문 바로가기
728x90
반응형

Python437

[프로그래머스] 완주하지 못한 선수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 참여자 명단에서 완주한 사람을 제거하고 남은 한 명의 이름을 구하는 문제이다. 처음에 참여자 명단에서 완주한 사람을 제거하는 방식으로 해결해보려고 했지만 유효성 검사에서 시간초과가 발생했다. 하여 문제의 분류처럼 해시를 이용하여 해결할 수 있는 방법을 생각했고 딕셔너리를 활용하였다. 참여자 명단을 저장할 딕셔너리를 생성한다. d = {} 참여자 명단을 한 명씩 불러오며 for i in participant 만약 동명이인이면 사람 수를 증가시킨다. if (i in d).. 2023. 9. 19.
[백준] 11866번 : 요세푸스 문제 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 원형으로 앉은 사람을 차례대로 제거하는 문제이다. 원형으로 앉아 있으므로 해당 순서가 되기 전까지는 제일 앞사람을 제일 뒤로 옮기고, 해당 순서가 되면 해당 사람을 제거한다. 이런 방식으로 마지막까지 사람을 제거한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 사람 수와 제거할 순서를 입력받는다. N, K = map(int, sy.. 2023. 9. 18.
[파이썬으로 하는 데이터 분석] 4. Numpy - 우당탕탕 개발자 되기 프로젝트 Numpy는 수치 해석 라이브러리입니다. Numpy 또한 Pandas처럼 사용하기 위해선 라이브러리를 설치해줘야 하고 import를 통해 설치한 Numpy 라이브러리를 불러와야 합니다. 라이브러리를 설치하는 방법은 Pandas 라이브러리를 설치한 방법과 동일합니다. numpy의 array() 메서드는 리스트를 배열의 형태로 만들어줍니다. numpy 라이브러리를 np 이름으로 불러온 다음, np(=라이브러리).array(리스트) 형식으로 작성해 주면 해당 리스트가 배열의 형태로 반환됩니다. array() 메서드에서 리스트를 2차원 리스트로 넣어줄 경우, 배열 또한 2차원 배열의 형태로 반환됩니다. 그리고 만들어진 배열의 shape를 출력해 보면 배열의 형태 즉, 행과 열의 값을 출력해 줍니다. 배열명.sh.. 2023. 9. 17.
[프로그래머스] 롤케이크 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 롤케이크를 잘랐을 때, 두 조각의 토핑의 종류 개수가 동일한지 판단해야 하는 문제이다. 인덱싱을 사용하여 계속적으로 슬라이싱 한 결과를 set로 바꾸어 토핑 종료의 개수를 판단해 보았지만 시간초과를 해결할 수 없었다. 하여 한 번에 set로 저장하는 방법을 생각해 보았다. 한 명은 처음에 케이크의 전체를 가지고 시작하며 나머지 한 명에게 하나씩 토핑을 주며 두 케이크의 조각 위 토핑의 종류 개수를 비교하고 일치하는 개수를 세어주는 방식으로 시간초과를 해결하였다. 한 .. 2023. 9. 17.
[파이썬으로 하는 데이터 분석] 3. Pandas - 우당탕탕 개발자 되기 프로젝트 데이터 분석에 있어 가장 먼저 공부할 부분은 pandas입니다. pandas를 사용하려면 해당 라이브러리를 설치해줘야 합니다. window + R을 눌러 실행창을 띄우고 cmd를 입력하여 명령창으로 이동합니다. 이후 명령창에서 pip install pandas 명령어를 입력하면 pandas를 설치할 수 있습니다. pandas 라이브러리를 설치했다면 간단하게 DataFrame을 만들어보겠습니다. DataFrame은 데이터를 분석하기 위한 바탕입니다. 이후 내용에서 더 자세하게 알아보겠습니다. DataFrame은 간단하게 Dictionary와 List의 형태로 만들 수 있습니다. Key가 동일한 딕셔너리를 리스트에 넣고 pandas 라이브러리 안에 있는 DataFrame() 메서드에 넣어주면 해당 리스트가 .. 2023. 9. 16.
[백준] 1934번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 수의 최소공배수를 구하는 문제인데 최소공배수를 한 번에 구하려고 하다 보니 시간초과가 발생하였다. 하여 유클리드 호제법을 활용하여 두 수의 최대공약수를 구하고 최대공약수와 두 수를 최대공약수로 나눈 값을 곱하여 최소공배수를 구하도록 구현하였다. 유클리드 호제법은 두 수의 최대공약수를 쉽게 구할 때 활용하는데 두 수 중 큰 수를 작은 수로 나누고 생긴 나머지를 이용하여 나누는 수를 나머지로 나누며 .. 2023. 9. 16.
[프로그래머스] 체육복 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 체육복이 있는지 확인하고 체육복이 있는 학생의 수를 세어주면 된다. 여벌의 체육복을 가져온 학생이 도난당했을 경우 본인의 여벌 체육복을 입어야 하므로 해당 경우를 먼저 고려해줘야 한다. 이후 이전 학생에게 우선적으로 체육복을 빌려주도록 해결하기 위해 여벌의 체육복을 가져온 학생들을 오름차순으로 정렬하고 체육복을 빌려준다. 전체 학생들의 체육복 여부를 저장할 리스트를 생성한다. 이때 학생 번호를 인덱스로 사용하기 위해 0번 인덱스를 제외한 크기가 학생 수가 되도록 생성.. 2023. 9. 15.
[백준] 10844번 : 쉬운 계단 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 원하는 자릿수의 계단 수의 개수를 구하는 문제이다. 마지막 숫자의 값에 따라 다음으로 올 수 있는 수가 결정된다. 처음에는 자릿수를 늘려가며 계단 수를 모두 구하는 방식으로 풀이하였다. 하지만 메모리 초과가 계속적으로 발생하였다. 하여 고정된 메모리를 사용하고 최소한의 메모리를 사용할 방법을 고안해 보았다. 0과 9는 1가지, 나머지 숫자는 2가지씩 다음 숫자가 올 수 있다. 해당 숫자가 마지막 숫자로 올 수 있는 경우의 수는 이전 결과에서 해당 숫자가 마지막으로 올 수 있는 경우의 수를 더하면 된다. 예를 들어 다음 결과에서 마지막 .. 2023. 9. 14.
[프로그래머스] [1차] 프렌즈4블록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 먼저 제거될 수 있는 블록의 위치와 개수를 파악하고 해당 위치의 블록을 제거한다. 이후 제거된 블록의 자리를 위의 블록이 내려와 채우게 된다. 블록이 채워질 때는 아래에서부터 빈자리를 파악하여 블록을 채워주면 된다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 블록의 위치를 저장해 줄 그래프를 생성하고 graph = list() for _ in range(m): graph.append([0] *.. 2023. 9. 13.
[백준] 11050번 : 이항 계수 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 이항 계수 즉, 조합의 경우를 구하는 문제이다. 이항 계수의 값은 N! / K!(N - K)! 의 결과와 동일하므로 팩토리얼을 활용해 값을 구한다. 이때 결과를 정수형으로 반환하기 위해 나눗셈의 몫을 출력하도록 구현한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys N과 K를 입력받는다. N, K = map(int, sys.stdin.readline().split()) 팩토리얼을 구해줄 함수를 선언한다. def factorial(n) 만약.. 2023. 9. 12.
728x90
반응형