일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- php
- web
- JavaScript
- DP
- BFS
- Python
- Math
- Algorithm
- 따라하면서 배우는 C언어
- greedy
- BASIC
- 생활코딩
- Cleancode
- 종만북
- dfs
- 정수론
- programmers
- C
- udemy
- 따배씨
- 백준
- C언어
- String
- 따라하며 배우는 C언어
- sorting
- server
- 인프런
- Algospot
- BOJ
- graph
- Today
- Total
목록Algorithm PS/BOJ (113)
몽상실현개발주의
[BOJ] 2875 / 대회 or 인턴 / Python 파이썬 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 풀이 주어진 조건들의 우선순위를 생각하면 쉽게 구현 가능한 문제이다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 많은 팀을 만들어야 한다. 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. 먼저 여학생을 기준으로 팀을 구성하고, 인턴쉽 인원을 맞춰주는 방식으로 구현하였다. N, M, K = map(int, input().split()) team = N..
[BOJ] 11047 / 동전 0 / Python 파이썬 https://www.acmicpc.net/problem/11047 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 풀이 생각한대로 구현하니 풀어지는 간단한 그리디 알고리즘 문제이다. 주어진 금액에 가까운 가장 큰 동전의 개수부터 빼주면서 동전의 개수를 세어 주면 된다. import sys input = sys.stdin.readline N, K = map(int, input().split(..
[BOJ] 2448 / 별 찍기 - 11 / Python 파이썬 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 풀이 [BOJ] 2447 / 별 찍기 와 같은 프랙탈 문제이다. 기본 모양을 두고, 그 모양을 이용하여 다음 모양을 만들어 가는 것을 진행하였다. 주어진 모양의 삼각형의 아래에 왼쪽과 오른쪽 두쌍의 삼각형을 만들고 전체 모양을 만들기 위해 주어진 삼각형에 공간을 삽입하여 구조를 만들어 주었다. N = int(input()) tri = [" * ", " * * ", "*****"] N =..
[BOJ] 2447 / 별 찍기 - 10 / Python 파이썬 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 풀이 부분의 구조가 반복되어 전체의 구조를 만드는 프랙탈 문제이다. 기본 모형을 분할정복으로 구성해 나가며 해결하여야 한다. 하지만 실제로 구현하는것이 너무 어렵게 느껴졌고, 다른분들의 풀이를 참고 하였지만 이해하는데 꽤 시간이 걸렸다. (그 이유로 몇일간 다른 풀이 및 블로그 포스팅을 하지 못하였다...)..
[BOJ] 11729 / 하노이 탑 이동 순서 / Python 파이썬 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 풀이 유명한 하노이의 탑 문제를 부할정복으로 푸는 문제이다. 마지막 원판을 3번 장대로 옮기기 위한 방법은 다음과 같다. 마지막 원판을 제외한 원판을 2번 장대로 옮기기 마지막 원판을 3번 장대로 옮기기 2번 장대의 모든 원판을 3번 장대로 옮기기 그리고 마지막 원판을 옮기기 위해서는 그 이전의 원판들의 작업이 진행..
[BOJ] 1780 / 종이의 개수 / Python 파이썬 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 풀이 [BOJ] 1992 / 쿼드트리 문제의 심화 문제이다. 쿼드트리에서는 주어진 2차원 배열을 2x2 분할 하였다면, 이번 문제에서는 3x3으로 분할 하여 해결 하였다. import sys input = sys.stdin.readline N = int(input()) maps = [] for _ in range(N): maps..
[BOJ] 1992 / 쿼드트리 / Python 파이썬 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 풀이 분할정복의 기본적인 문제이다. 재귀를 이용하여 가장 작은 부분문제를 해결하는 것으로 전체의 문제를 해결 할 수 있었다. 전체가 같은지 조건을 검사 조건에 부합하지 않다면, 1 - 2 - 3- 4 분면으로 나누기 나눠진 4분면들을 각각 검사 조건에 부합하지 않다면, 1 - 2 - 3- 4 분면으로 나누기 부분 문제가 가장 작은..
[BOJ] 11728 / 배열 합치기 / Python 파이썬 https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 풀이 주어지는 두 배열을 합쳐 정렬하는 문제이다. 파이썬에서 제공되는 sort() method 로 쉽게 해결하였다. N, M = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split()))..