본문 바로가기
728x90
반응형

백준243

[백준] 2447번 : 별 찍기 - 10 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 동일한 패턴을 가진 별의 모양을 크기에 맞춰 출력하는 문제이다. 가장 기초 패턴인 3일 때의 패턴이 계속 반복되므로 해당 패턴을 반복하여 출력해야 한다. 전체 패턴을 3개의 층으로 구분하여 보면, 제일 위에는 동일한 패턴이 3번 반복되고, 그 아래층은 패턴 + 공백 + 패턴으로 이루어지고, 마지막으로 가장 아래층은 패턴이 3번 반복되는 것을 볼 수 있다. 하여 3일 때의 패턴을 가지고 9일 때.. 2023. 12. 16.
[백준] 4779번 : 칸토어 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 칸토어 집합을 만들기 위한 과정을 함수로 정의하면 def Func(N) 입력으로 들어온 수가 1이면 -를 반환하며 해당 과정을 멈춘다. if (N == 1): return '-' 수가 1이 아니면 해당 수를 3 등분하여 왼쪽, 가운데, 오른쪽 부분으로 나눈다. 왼쪽 부분은 다시 한번 해당 과정을 수행한다. left = Func(N.. 2023. 12. 15.
[백준] 24060번 : 알고리즘 수업 - 병합 정렬 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 배열의 원소들을 오름차순으로 정렬하며 각 과정별로 저장되는 값을 저장하고 이를 횟수에 따라 출력하는 문제이다. 문제에 나와있는 배열을 병합 정렬하는 코드를 활용해 정렬을 수행하는데, 여기서 각 과정별로 저장되는 값을 따로 저장해줘야 하므로 해당 값을 저장할 리스트를 생성해 과정별로 저장되는 값을 해당 리스트에 추가한다. 만약 저장된 값의 개수가 입력으로 받은 저장 횟수보다 .. 2023. 12. 14.
[백준] 25501번 : 재귀의 귀재 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 팰린드롬인지 파악하는 isPalindrome 함수의 반환값과 그 과정에서 호출된 recursion 함수의 횟수를 구해야 하는 문제이다. isPalindrome 함수의 반환값은 문제에서 주어진 함수를 그대로 가져오면 쉽게 구할 수 있다. 하지만 recursion 함수의 횟수는 구할 수 없다. 하여 각 함수에 cnt라는 새로운 인수를 추가하여 recursion 함수의 횟수를 저장한다. recursion 함수에서 팰린드롬인지 아닌지 결과를 반환할 때, 기존 함수의 반환인 해당 결.. 2023. 12. 13.
[백준] 20920번 : 영단어 암기는 괴로워 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 영어 지문에 나오는 단어의 개수와 외울 단어의 길이 기준을 입력받는다. N, M = map(int, sys.stdin.readline().split()) 영어 단어와 해당 단어가 나온 횟수를 저장할 딕셔너리를 생성한다. d = {} 영어 단어의 개수만큼 반복하며 f.. 2023. 12. 12.
[백준] 2108번 : 통계학 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 수의 개수를 입력받는다. N = int(sys.stdin.readline()) 각 수를 저장할 리스트를 생성하고 li = [] 각 수가 입력되는 횟수를 저장할 딕셔너리를 생성한다. d = {} 수의 개수만큼 반복하며 for i in range(N) 각 수를 입력받고 num = int(sys.stdin.readline()) 만약 해당 수가 이미 .. 2023. 12. 11.
[백준] 26069번 : 붙임성 좋은 총총이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 26069번: 붙임성 좋은 총총이 첫번째 줄에는 사람들이 만난 기록의 수 $N\ (1 \le N \le 1\ 000)$이 주어진다. 두번째 줄부터 $N$개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. $i + 1$번째 줄에는 $i$번째로 만난 사람들의 이름 $A_i$ www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 사람들이 만난 기록의 수를 입력받는다. N = int(sys.stdin.readline()) 무지개 댄스를 추고 있는 사람의 이름을 저장할 세트를 생성하고 dance = set() 기록이 시작되기 전 무지개 댄스를 추고 있는 ChongChong 이를 추가한다. dance.add('.. 2023. 12. 10.
[백준] 25192번 : 인사성 밝은 곰곰이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 25192번: 인사성 밝은 곰곰이 첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 채팅방에서 곰곰티콘이 사용된 횟수를 구하는 문제이다. 한 채팅방에서 채팅을 입력한 유저를 한 세트에 저장한다. 여기서 유저의 이름을 세트에 저장하는 이유는 새로운 사람이 들어오기 전까지는 원래 있던 사람들끼리 채팅을 하는 것이므로 한 명당 한 번의 곰곰티콘을 사용하고, 이후 채팅은 그냥 일반 채팅이기 때문이다. 이후 ENTER가 입력되고 새로운 사람이 들어오면 새롭게 곰곰티콘을 사용할 수 있다. 하여.. 2023. 12. 9.
[백준] 1037번 : 약수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 진짜 약수를 보고 N을 구하는 문제이다. 주어지는 진짜 약수는 1과 N을 제외하고 입력받아지기 때문에 약수를 정렬했을 때 제일 작은 수와 제일 큰 수를 곱하면 N이 된다. 그 이유는 원래 N의 약수를 구하면 제일 작은 약수가 1이고, 제일 큰 약수가 N이 되는데 입력받은 진짜 약수에는 1과 N이 없다. 하지만 전체 약수에서 1과 N을 제거했을 때, 그다음 제일 작은 수와 제일 큰 수의 곱 또한 N이 되기 때문에 .. 2023. 12. 8.
[백준] 24511번 : queuestack - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 24511번: queuestack 첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 queue와 stack인 자료구조로 이루어진 수열에서 원소를 추가로 삽입했을 때 나오는 원소를 반환하는 문제이다. 원소를 삽입하고 삭제하는 과정에서 stack 자료구조는 삽입하는 원소와 삭제하는 원소가 동일하므로 고려할 필요가 없다. 따라서 queue 자료구조인 원소만 고려해 주면 된다. queue 자료구조인 원소들만 따로 모아 새로운 qu.. 2023. 12. 7.
728x90
반응형