본문 바로가기
728x90
반응형

Baekjoon243

[백준] 15649번 : N과 M (1) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 1부터 N까지 수 중, M개를 뽑아 나열하는 것과 동일하다. 하여 permutations() 함수를 활용하여 순열의 결과를 저장하고 이를 하나씩 출력하면 되는 문제이다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys permutations() 함수를 사용하기 위해 permutstions 모듈을 불러온다. from itertools import permutation.. 2023. 7. 31.
[백준] 11053번 : 가장 긴 증가하는 부분 수열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 각 수까지 부분 수열에서 최대로 긴 증가하는 부분 수열의 길이를 구하면 된다. 처음 최소 길이 1로 초기화한 배열을 가지고 수열에서 각 수를 가져와 수열의 이전 값들과 비교한다. 만약 가져온 수가 더 크다면 비교한 값의 부분 수열 길이에 1을 더한 결과와 현재 수의 부분 수열 길이를 비교하여 더 큰 결과를 가져온 수의 부분 수열 길이로 저장한다.. 2023. 7. 30.
[백준] 1436번 : 영화감독 숌 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 숫자를 차례대로 보면서 666이 포함되어 있으면 개수를 세고, 만약 찾으려고 하는 번째의 수를 찾으면 출력하고 종료하면 된다. 666이 포함된 숫자 중 가장 작은 숫자인 666부터 시작하여 수를 찾을 때까지 반복하면 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 찾을 영화 제목 순서를 입력받는다. N = int(sys.stdin.readline()) 가장.. 2023. 7. 29.
[백준] 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.
[백준] 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.
[백준] 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.
[백준] 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.
[백준] 2579번 : 계단 오르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 이전에 밟은 계단의 결과에 따라 다음 밟을 수 있는 계단이 정해진다. 따라서 이전에 밟은 계단의 결과를 활용하여 문제를 해결하는 다이나믹 알고리즘을 사용해야 한다. 계단은 1칸 올라가거나 2칸을 바로 올라갈 수 있지만 1칸씩 3칸을 연속으로 밟을 수 없다. 하여 계단 3칸을 확인해 다음 계단을 선택해야 한다. 3칸의 계단을 봤을 때 계단을 올라가는 경우는 1칸을 올라간 뒤, 2칸을 올라가는 방법과 2칸을 올라간 뒤, 1칸을 올라가는.. 2023. 7. 25.
728x90
반응형