본문 바로가기
728x90
반응형

전체 글510

[프로그래머스] 다리를 지나는 트럭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 큐 자료구조를 활용하여 트럭이 모두 건너는 최소 시간을 구하는 문제이다. deque 자료구조를 사용하여 다리의 각 칸을 만들어주고 트럭을 한 칸씩 이동하도록 구현하였다. 이때 매번 다리 위 전체 무게를 sum() 함수로 계산하면 많은 시간이 소요되므로 다리 위 전체 무게를 저장할 변수를 생성해 따로 계산해 주었다. 트럭을 다리 위로 올릴 수 있으면 출발시키고, 그렇지 않다면 앞으로 이동시키고 남은 칸은 0으로 채운다. deque 자료구조를 사용하기 위해 deque 모.. 2023. 10. 9.
[파이썬으로 하는 데이터 분석] 8. 추가 & 변경 - 우당탕탕 개발자 되기 프로젝트 DataFrame에 row, column, 값(원소)을 추가할 수 있습니다. column을 추가하려면 새로운 column을 생성해 주고 각 row 마다 column의 값을 지정하면 됩니다. DataFrame 이름['새로운 column 이름'] = [각 row 별 column 값] 형식으로 작성해 주면 되는데, 만약 값을 하나만 줬다면 모든 row의 column 값이 동일하게 추가됩니다. row를 추가하려면 loc를 활용하여 새로운 row를 생성하고 각 column 마다 값을 지정해 주면 됩니다. DataFrame 이름.loc['새로운 row 이름'] = [각 column 별 값들] 형식으로 작성해 주면 새로운 row가 추가됩니다. DataFrame의 값(원소)을 변경할 수도 있습니다. 값(원소)을 변경할.. 2023. 10. 8.
[백준] 10798번 : 세로읽기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력받는 문자열을 2차원 배열로 저장하고 이를 출력하는 문제이다. 모든 문자열의 0번 인덱스부터 가장 긴 문자열의 마지막 인덱스까지 출력하면 된다. 하지만 더 짧은 문자열이 존재할 수 있고 이런 경우 더 이상 출력할 문자가 없으면 다음 문자열의 문자를 이어서 출력하면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 총 5줄의 문자열을 입력받아 문자열마다.. 2023. 10. 8.
[파이썬으로 하는 데이터 분석] 7. 선택 - 우당탕탕 개발자 되기 프로젝트 선택은 매우 중요한데, 선택에는 row 선택과 column 선택, 값(원소) 선택이 있습니다. 먼저 row 선택에서는 loc와 iloc를 사용합니다. DataFrame 이름.loc[인덱스 이름] 형식으로 작성해 주면 인덱스 이름을 갖는 row를 선택하여 해당 row가 가지고 있는 column을 보여줍니다. DataFrame 이름.iloc[인덱스 번호] 형식으로 작성해 주면 해당 번호의 인덱스 row를 선택하여 해당 row가 가지고 있는 column을 보여줍니다. iloc의 i는 integer이며 loc에서 인덱스 이름 형식으로 작성해 준 것을 정수 형태로 작성하는 것입니다. loc와 iloc를 사용하여 row를 선택할 때 여러 개의 row를 선택하고자 한다면, 파이썬에서 사용한 슬라이싱 개념과 방식을 동.. 2023. 10. 7.
[프로그래머스] 가장 큰 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 정렬과 문자열을 활용하는 문제이다. 각 숫자는 0부터 1,000까지의 수이므로 최대 4자리 수이다. 모두 다른 자리의 수가 주어진다면, 어떤 조합이 가장 큰 수가 되는지 찾는 것은 많은 시간이 소요될 것이다. 하여 모든 수를 4자리 수 이상이 되도록 변경한 뒤 앞 4자리만 비교하여 내림차순 정렬을 해준다. 최소 1자리 수부터 있으므로 수를 문자열로 바꾸어 4배하면 모든 수를 4자리 이상의 수로 만들 수 있다. 모든 수를 문자열로 바꾸고 4개를 이어붙인 문자열의 앞에서.. 2023. 10. 7.
[백준] 2566번 : 최댓값 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 격자판의 숫자를 모두 입력받아 2차원 배열로 저장한 후, 각 값을 하나씩 불러와 계속적으로 최댓값을 찾고 새로운 최댓값을 찾으면 해당 행 번호와 열 번호를 저장한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 격자판에 쓰여진 숫자를 입력받아 2차원 리스트로 저장한다. li = list(list(map(int, sys.stdin.readline().split())) for _ in.. 2023. 10. 6.
[프로그래머스] 택배상자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 컨테이너 벨트를 스택 구조로 하여 해결하면 된다. 상자를 1번부터 하나씩 불러와 우선 컨테이너 벨트에 싣는다. 그리고 컨테이너 벨트가 비거나 꺼낼 수 있는 상자가 현재 실어야 하는 상자가 아닐 때까지 반복하며 상자를 트럭에 싣는다. 컨테이너 벨트를 리스트로 생성한다. belt = [] 현재 실을 상자의 인덱스를 저장할 변수를 생성하고 초기화한다. idx = 0 상자는 1번부터 전체 실을 상자의 개수만큼 존재하므로 하나씩 불러오며 for box in range(1, l.. 2023. 10. 5.
[백준] 25206번 : 너의 평점은 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력받은 등급을 기준으로 P 등급이 아닌 과목의 전공평점을 구하는 문제이다. 각 등급별 과목평점을 미리 딕셔너리를 통해 저장해 두고 전공과목별 점수를 계산할 때 활용한다. 각 입력은 한 번에 입력되므로 문자열 형태로 입력받은 다음 계산할 때 알맞은 자료의 형태로 변환하여 계산한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 등급에 따른 과목평점을 딕셔너리로 저장한다... 2023. 10. 4.
[프로그래머스] 단속카메라 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 카메라를 설치할 구간을 지정해 가며 최소한으로 카메라를 설치하는 개수를 구하는 문제이다. 차량의 이동 경로에서 진입 구간이 늦은 차량부터 살펴보며 카메라를 설치할 구간을 정한다. 다음 차량의 진입 구간이 이전 차량의 진출 구간보다 전에 있다면 두 차량의 이동 경로가 겹치게 되고 겹치는 지점에 카메라를 설치하면 카메라를 최소한으로 설치할 수 있다. 차량의 이동 경로를 오름차순으로 정렬한다. routes.sort() 처음 카메라를 설치할 구간을 제일 뒷 경로의 구간으로 .. 2023. 10. 3.
[백준] 10988번 : 팰린드롬인지 확인하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 입력받은 문자열이 팰린드롬인지 확인하는 문제이다. 팰린드롬은 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말하므로 양쪽 끝의 문자가 동일한 문자인지 비교하며 가운데 문자까지 비교했을 때 각 모든 문자가 같으면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 문자열을 입력받는다. 마지막에 입력받은 엔터를 지워준다. S = sys.stdin.readline().rstrip() 팰린드롬을 확인할 변수를 생성한다. c.. 2023. 10. 2.
728x90
반응형