본문 바로가기
728x90
반응형

분류 전체보기510

[프로그래머스] 체육복 - 파이썬(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.
[프로그래머스] [3차] 파일명 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 파일명을 head, number, tail 부분으로 나누어 head를 기준으로 정렬하고 동일하면 number을 기준으로 정렬하며, number 부분도 동일하면 입력받은 파일명의 순서를 기준으로 정렬한 결과를 구하는 문제이다. 리스트를 정렬할 때는 이전 정렬한 결과를 가지고 다음 정렬이 이루어지므로 정렬 순서를 거꾸로 생각해야 한다. 또한 head 부분은 대소문자가 구분이 없고, number 부분은 숫자로 생각하여 오름차순 정렬해야 한다. 파일명을 나눈 결과를 저장할 .. 2023. 9. 11.
[백준] 3009번 : 네 번째 점 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 세 점을 입력받고 직사각형의 나머지 한 점을 찾는 문제이다. 직사각형의 모든 점을 보면 x좌표의 값이 2개, y좌표의 값이 2개로 정해지는데, 세 개의 점을 입력받아 1개의 값만 입력받아진 값이 나머지 한 점의 각 좌표 값이 되어야 한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys x좌표를 저장할 리스트를 생성한다. xList = list() y좌표를 저장할 리스트를 생성한다. yList = list() 3번 반복하며 for _ in ran.. 2023. 9. 4.
[파이썬으로 하는 데이터 분석] 2. Jupyter Notebook 사용하기 - 우당탕탕 개발자 되기 프로젝트 Jupyter Notebook에서는 기존 파이썬의 문법을 동일하게 사용하면 됩니다. 명령문을 입력하고 Ctrl + Enter를 누르면 실행됩니다. 다음 명령문을 입력할 새로운 공간을 생성할 때는 + 아이콘을 눌러도 되고, B를 눌러도 됩니다. 삭제하는 방법은 가위 아이콘을 누르거나, D를 누르는 방법이 있습니다. Jupyter Notebook에서는 명령문 공간이 파란색이면 읽는 모드, 녹색이면 작성하는 모드라고 생각하면 됩니다. 파란색으로 읽기 모드일 때는 커서가 깜빡거리지 않지만 녹색으로 작성 모드일 때는 커서가 깜빡거리며 명령어를 입력할 수 있습니다. 파란색에서 녹색으로 변경할 때는 Enter를 누르면 되고, 반대로 녹색에서 파란색으로 변경할 때는 Ctrl + Enter를 누르면 입력한 명령문이 실행.. 2023. 9. 3.
[프로그래머스] 등굣길 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 물에 잠긴 부분을 알려주는 행렬의 x좌표와 y좌표가 바뀌어 주어진다는 것을 알아야 한다. 나와있는 예제가 [[2, 2]]로 나와있어 파악하기 힘들었다. 하여 지도를 만들고 물에 잠긴 위치인치 판단할 때는 x좌표와 y좌표를 바꾸어 생각해줘야 한다. 그리고 지도의 인덱스 값을 그대로 좌표의 값으로 계산하기 위해 0행과 0열을 0으로 초기화하여 추가해 주는데, 이것은 다음 위치의 경우의 수를 계산할 때 따로 고려해주지 않아도 된다는 편리함이 있다. 지도를 나타내줄 리스트를.. 2023. 9. 3.
[파이썬으로 하는 데이터 분석] 1. 프로그램 설치 및 설정 - 우당탕탕 개발자 되기 프로젝트 데이터 분석을 해볼 프로그램은 anaconda (아나콘다)입니다. anaconda 설치부터 시작해 보도록 하겠습니다. anaconda를 설치할 때는 Just Me 옵션으로 선택하여 설치해 주는 것을 권장합니다. anaconda가 설치되는 위치를 알아보겠습니다. 위치를 알아보는 방법은 window 키 + R을 누르고 실행창이 나오면 cmd를 입력하여 명령창을 띄워줍니다. 이후 whoami를 입력해 주면 해당 위치가 나오게 됩니다. 나오는 위치는 내 PC, 로컬 디스크, 사용자에 생성되어 있는 폴더의 위치입니다. 해당 위치에 anaconda가 설치되게 됩니다. 설치되는 위치를 확인했다면 설치를 마저 진행합니다. 이때 오류가 뜨는 경우도 있습니다. 이런 경우에는 설치가 되는 폴더에 들어가 anaconda 파일.. 2023. 9. 2.
[백준] 1966번 : 프린터 큐 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 인쇄 차례를 구할 문서를 잘 쫓아가는 것이 핵심이다. 중요도가 동일한 문서가 존재할 수 있기 때문에 인쇄 차례를 구할 문서가 현재 어디에 위치하는지를 아는 것이 중요하다. 하여 처음 입력받는 인쇄 차례를 구할 문서의 위치를 계속 변경하며 해당 문서의 위치를 파악하도록 했다. 만약 제일 큰 중요도를 가진 문서를 출력할 때 그 문서가 찾고자 하는 문서라면 인쇄 순서를 출력하도록 구현했다. sys.stdin.readline() .. 2023. 9. 2.
728x90
반응형