본문 바로가기
728x90
반응형

Python437

[백준] 2441번 : 별 찍기 - 4 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 1. 문제 설명 2. 풀이과정 중첩 반복문을 연습해 보는 문제라고 할 수 있겠습니다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러옵니다. import sys 총 별을 찍을 줄 수를 입력받습니다. N = int(sys.stdin.readline()) 입력받은 수부터 1까지 각 줄마다 별의 개수를 찍어줘야 하므로 거꾸로 반복문을 실행합니다. for i in range(N, 0, -1) 별을 오른쪽 기준으로 정렬하여 찍어줘야 하므로 공백을 먼저 출력해 준다. 공백.. 2023. 7. 11.
[프로그래머스] 구명보트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 리스트의 형태로 해결하려고 하였지만 리스트는 연산 속도가 느려 자꾸 시간초과가 생겼다. 하여 deque의 형태로 해결하였다. 이 문제는 구명보트에 최대 2명까지 태울 수 있으므로 가장 가벼운 사람과 가장 무거운 사람을 태웠을 때 무게 제한을 넘지 않으면 2명을 태우고 무게 제한을 넘는다면 가장 무거운 사람은 혼자 타고 가는 방식으로 해결한다. deque을 사용하기 위해 collections 모듈에서 deque을 불러온다. from collections import deque 입력.. 2023. 7. 10.
[프로그래머스] 두 개 뽑아서 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 수를 두 개씩 선택하여 모두 더해보고 해당 값이 리스트에 없으면 새로 저장하는 방식으로 해결하였다. 리스트에서 두 개씩 수를 선택한다. for i in range(len(numbers) - 1): for j in range(i + 1, len(numbers)) 만약 선택한 두 수를 더한 값이 정답 리스트에 없으면 if ((numbers[i] + numbers[j]) not in answer) 정답 리스트에 두 수의 합을 추가한다. answer.append(numbers[i] .. 2023. 7. 10.
[프로그래머스] 예상 대진표 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전체 참가자를 두 부분으로 나누고 두 참가자의 위치가 서로 분리되어 있으면 결과를 도출하는 방식으로 해결했습니다. 정답이 도출되어 반환되기 전까지 계속 반복합니다. while (True) 가운데 지점을 정합니다. center = n // 2 만약 두 참가자가 같은 부분에 있는데 중앙보다 큰 쪽에 있다면 if (a > center) and (b > center) 참가자의 번호를 다시 1부터 나열되도록 맞추기 위해 각 참가자의 번호에서 중앙의 값을 빼준 값으로 새로 저장.. 2023. 7. 10.
[프로그래머스] K번째수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 매개변수로 입력받은 commands의 1차원 배열마다 각 결과를 도출해야 하므로 commands의 1차원 배열 크기만큼 반복한다. for i in range(len(commands)) 추출한 commands의 1차원 배열의 값 중 i와 j의 범위의 값을 매개변수로 입력받은 배열에서 슬라이싱으로 추출하여 새로운 리스트로 저장한다. li = array[commands[i][0] - 1 : commands[i][1]] 추출한 값을 오름차순으로 정렬한다. li.sort() 정답 리스트에.. 2023. 7. 10.
[프로그래머스] 문자열 내 마음대로 정렬하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 인덱스 문자가 동일할 경우 사전순으로 정렬한 결과를 반환해야 하므로 먼저 사전순으로 문자열 리스트의 원소를 정렬한다. strings.sort() 문자열 리스트의 각 원소와 인덱스 문자를 저장할 딕셔너리를 생성한다. d = {} 문자열 리스트의 각 원소를 하나씩 추출한다. for i in strings 추출한 원소를 key로 하고 인덱스 문자를 value로 하여 딕셔너리에 추가한다. d[i] = i[n] 딕셔너리의 원소들을 value의 값으로 정렬한다. items() 메서드를 활용.. 2023. 7. 9.
[백준] 10250번 : ACM 호텔 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하여 입력받기 위해 sys 모듈을 불러온다. import sys 테스트 케이스의 개수를 입력받는다. T = int(sys.stdin.readline()) 각 테스트 케이스의 결과를 저장할 리스트를 생성한다. li = list() 테스트 케이스 횟수만큼 반복한다. for i in range(T) 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님인지 입력받는다. H, W, .. 2023. 7. 9.
[백준] 1929번 : 소수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하여 입력을 받기 위해 sys 모듈을 불러온다. import sys 소수를 구할 범위의 수를 입력받는다. M, N = map(int, sys.stdin.readline().split()) 함수를 구현하여 문제를 해결한다. def Func(num) 소수는 1과 자기 자신만 약수로 갖는 수를 말한다. 따라서 어떤 수를 제곱하였을 때 그 수가 소수를 판별할 수보다 크면 어떤 수보다 작은 수 중에서 나누었을 때 나누어 떨어.. 2023. 7. 9.
[백준] 11047번 : 동전 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readlin() 함수를 활용하여 입력받기 위해 sys 모듈을 불러온다. import sys 동전의 개수와 금액을 입력받는다. N, K = map(int, sys.stdin.readline().split()) 각 동전의 금액을 저장할 리스트를 생성한다. li = list() 동전의 개수만큼 반복하며 각 동전의 금액을 입력받고 입력받은 값을 리스트에 저장.. 2023. 7. 9.
[백준] 11399번 : ATM - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 시간의 합이 최소가 되려면 돈을 인출하는데 필요한 시간이 적은 사람부터 돈을 인출하면 된다. 따라서 각 사람이 돈을 인출하는데 필요한 시간이 저장된 리스트에서 최솟값을 구하여 이전 사람이 돈을 인출한 시간에 더하고 그 값을 전체 인출 시간에 더해준다. 시간을 더했으면 해당 사람을 삭제하고 나머지 값 중 최솟값을 찾아 계속적으로 해당 과정을 반복하면 된다. sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys 사람의.. 2023. 7. 9.
728x90
반응형