백준 11

[백준] #1821 수들의 합 6 python

https://www.acmicpc.net/problem/1821 1821번: 수들의 합 6 첫째 줄에 두개의 정수 N(1 ≤ N ≤ 10)과 F가 주어진다. N은 가장 윗줄에 있는 숫자의 개수를 의미하며 F는 가장 밑에 줄에 있는 수로 1,000,000 이하인 자연수이다. www.acmicpc.net 📕 설명 📕 파스칼 삼각형의 공식을 이용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 import sys def dfs(idx, result): global finish if finish or result > sum: return if idx == N: if sum == result: for i in range(N): print(ans[i], end=" ") finish = True return for i..

[백준] #1286 부분 직사각형 python

https://www.acmicpc.net/problem/1286 1286번: 부분 직사각형 오민식은 크기가 N×M 이고, 문자로 채워져있는 직사각형 표를 하나 가지고 있다. 이 표를 복사해 표가 2×2 크기의 직사각형을 이루게 만든다. 그 다음, 복사해서 만든 표의 모든 부분 직사각형을 www.acmicpc.net 📕 설명 📕 python의 ord를 이용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int,input().split()) result = [0]* 26 for i in range(N): row = (i+1) * (2*N - i) + (i + N + 1) * (N - i) S = input() for j in range(M): col = (j + 1) * (2 * M - ..

[백준] #2669 직사각형 네개의 합집합의 면적 구하기 python

https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각 www.acmicpc.net 📕 설명 📕 전체에 대해서 채워나가는 식으로 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 box = [[0 for _ in range(101)] for _ in range(101)] for _ in range(4): x1, y1, x2, y2 = map(int, input().split()) for i in range(x1, x2): for j in range(y1, y2):..

[백준] #1441 비슷한 단어 python

https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net 📕 설명 📕 python의 combinations를 이용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 from itertools import combinations def is_Similar(s1, s2): s = [] for i in [s1, s2]: alpha = [] a = "" for j in i: if j not in alpha: alpha.append(j) a += str(al..

[백준] #2535 아시아 정보올림피아드 python

https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 📕 설명 📕 각 대회에 대한 정보를 리스트에 넣고 정렬한 뒤 다시 역으로 score에 대해 정렬합니다. 그리고, dictionary를 생성하여 해당 값에 매칭되는 것이, 해당 팀이 2회 이하 나와야 하므로, 2회 이하로 맞춰주기 위해 2회 받으면 continue로 넘겨줍니다. 그리고, 그 조건에 위배되지 않는 값들은 결과 list에 넣습니다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N..

[백준] #5426 비밀 편지 python

https://www.acmicpc.net/problem/5426 5426번: 비밀 편지 선영이는 남자친구를 위해 연애 편지를 썼다. 선영이는 편지가 남들에게 읽히는 것을 막기 위해서 편지를 암호화하려고 한다. 먼저, 편지의 내용을 정사각형에 작성한다. 그 다음, 시계방향으로 www.acmicpc.net 📕 설명 📕 python의 특수한 indexing을 이용해서 풀이했다. 그리고, N x N 성질의 행렬에 대한 연산을 진행하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 for _ in range(int(input())): S = input() len_S = len(S) li = [S[i:i+int(len_S**(1/2))] for i in range(0,len_S, int(len_S**(1/2)))] res = ..

[백준] #11006 남욱이의 닭장 python

https://www.acmicpc.net/problem/11006 11006번: 남욱이의 닭장 계란집을 운영하는 남욱이는 매일 닭장에서 달걀을 수거해간다. 어느 날 닭장에 들어가보니 일부 닭의 다리가 하나씩 사라졌다. 남욱이는 얼마나 많은 닭들이 한 다리를 잃었는지 알고싶었 www.acmicpc.net 📕 설명 📕 닭의 개수와 닭 다리의 개수를 고려해서 계산한다. 닭의 다리는 2개이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 for _ in range(int(input())): a, b = map(int, input().split()) print(2 * b - a, b - 2 * b + a)

[백준] #2747 피보나치 수 python

https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 📕 설명 📕 python의 대입 문법을 사용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 def fibonacci(a,b, N): for _ in range(N): a,b = a + b , a return a N = int(input()) a,b = 0, 1 print(fibonacci(a,b,N))

[백준] #11729 하노이 탑 이동 순서 python

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 📕 설명 📕 하노이 탑 알고리즘을 고려하여 문제 풀이. 재귀 중 가장 대표적인 문제. 1. 탈출 조건 설정하기 2. 일정 규칙 구현 3. 가장 큰 과정을 머릿속으로 구현하며 따라가기 이 과정에서 3가지 단계로 나눌 수 있다. 1번 : 하노이 탑 N - 1개를 가운데로 옮긴다. 2번 : 제일 큰 원판을 target 위치로 옮긴다. 3번 : N - 1개를 target 위치로 옮긴다. 🧑🏻..