본문 바로가기
728x90
반응형

Python437

[백준] 2164번 : 카드2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys popleft() 함수를 사용하기 위해 deque 자료구조를 사용하고, deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 카드의 수를 입력받는다. N = int(sys.stdin.readline()) 1부터 입력받은 수의 번호까지 차례대로 들어있는 deque을 생.. 2023. 7. 29.
[프로그래머스] 정수 삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 올 수 있는 이전의 길의 결과 중 가장 최댓값을 계속 적으로 선택하여 오면 된다. 하여 처음부터 다음 길을 갈 때 다음 길에 지금까지 온 길의 합을 계속 저장하고, 마지막에 도착했을 때 마지막 길들 중 최댓값을 구하면 해결되는 문제이다. 이전의 길의 결과를 저장할 리스트를 생성한다. result = list() 제일 처음 출발점의 값을 추가한다. result.append(triangle[0]) 이전 값은 처음부터 마지막 전까지 길의 값을 추출해야 한다. for i i.. 2023. 7. 29.
[프로그래머스] 피로도 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제의 던전의 최대 개수는 8개로 그렇게 많지가 않다. 하여 입력받은 던전에서 가능한 모든 순열의 결과를 구하고 이를 하나씩 불러오며 탐험 가능한 던전의 개수를 구한다. 모든 경우에서 탐험 가능한 던전의 개수를 구하면 최대 탐험 던전의 개수를 반환하면 된다. 파이썬에서는 리스트의 순열 조합의 경우를 구해주는 permutstions 함수가 있는데 이를 사용하기 위해 permutations 모듈을 불러온다. from itertools import permutations 모든 순.. 2023. 7. 28.
[백준] 1697번 : 숨바꼭질 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 현재 위치한 점으로부터 이동할 수 있는 경우가 뒤로 1칸, 앞으로 1칸, 순간이동 총 3가지가 있다. 하지만 점 0에서는 더 이상 뒤로 갈 수 없고, 점 100,000에서는 더 이상 앞으로 갈 수 없다.또한 순간이동 시 이동 후 위치가 100,000이 넘어가면 순간이동을 할 수 없다.각 점에서 경우별로 결과를 구하고 이를 그래프로 나타내어 해당 그래프를 BFS 탐색하면 해결할 수 있다. sys.. 2023. 7. 28.
[프로그래머스] [1차] 뉴스 클러스터링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 마지막 65536을 곱한 후 소수점 아래를 버림 할 때 floor() 함수를 사용하므로 math 모듈을 불러온다. import math 첫 번째 문자열의 다중집합 원소를 저장할 리스트를 생성한다. li1 = list() 인덱스 1번 원소부터 마지막 원소까지 살펴보며 for i in range(1, len(str1)) 앞 글자를 포함해 두 글자씩 끊어 저장한다. word = str1[i - 1] + str1[i] 만약 저장한 글자가 영문자로만 구성되어 있으면 if (word.isa.. 2023. 7. 27.
[백준] 10845번 : 큐 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys popleft() 함수를 사용하기 위해 deque을 생성하는데 deque 생성하기 위해 deque 모듈을 불러온다. from collections import deque 명령의 수를 입력받는다. N = int(sys.stdin.readline()) 큐를 생성한다. queue = deque() 명령의 수만큼 반복하며 .. 2023. 7. 27.
[백준] 11653번 : 소인수분해 - 파이썬(Python) - 우당탕탕 개발자되기 프로젝트 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 소인수분해할 정수를 입력받는다. N = int(sys.stdin.readline()) 소인수분해는 첫 번째 소수인 2부터 나누어 떨어지는지 확인해야 하므로 변수를 생성하고 2를 저장한다. i = 2 정수가 1이 되어 더 이상 나누어 떨어지지 않을 때까지 반복하며 while (N > 1) 만약 정수가 나누어 떨어지면 if (N % i == 0) 해당 소수를 출력한다. print(i) 그리고 정수를 소수로 나눈 몫으로 새로 저장한다. N //= i 반면에.. 2023. 7. 27.
[백준] 1018번 : 체스판 다시 칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 조금 귀찮긴 하지만 처음부터 끝까지 가능한 8x8 체스판을 선정하고 선정한 체스판마다 각 왼쪽 상단의 시작 칸이 흰색과 검은색으로 시작하도록 색칠한다. 각 색별 칠한 칸 수를 따로 구하여 더 적은 칸을 칠한 경우를 계속 적으로 저장한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 보드의 크기를 각 입력받는다. N, M = map(int, sys.stdi.. 2023. 7. 26.
[프로그래머스] 프로세스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 프로세스 중요도가 제일 큰 것부터 실행되어야 하므로 중요도가 제일 큰 프로세스를 찾아 실행 시작 위치를 저장한다. place = priorities.index(max(priorities)) 원하는 답을 구할 때 프로그램을 중단하기 위해 무한 반복문을 사용한다. while (True) 중요도가 가장 큰 프로세스의 중요도 값을 저장한다. value = max(priorities) 만약 현재 실행할 순서의 프로세스의 중요도가 가장 큰 중요도이면 if (priorities[place] .. 2023. 7. 26.
[백준] 1931번 : 회의실 배정 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 회의 시간이 겹치면 안 되므로 시작하는 시간과 끝나는 시간이 중요하다. 최대한 많은 회의를 진행해야 하므로 회의의 끝나는 시간이 짧은 것부터 회의를 시작해야 뒤에 이어지는 회의가 최대한으로 이루어질 수 있다. 하지만 끝나는 시간이 같다면 시작하는 시간을 봐야 하는데, 시작하는 시간과 끝나는 시간이 같을 경우 회의를 더 많이 할 수 있다. 하여 끝나는 시간이 같다면 시작하는 시간이 더 앞선 회의부터 진행한다. sys.stdin.readline() 함수를 활용하기 위해 sys 모듈을 불러온다. import sys 회의의 개수를 입력받는다... 2023. 7. 26.
728x90
반응형