일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Algospot
- 백준
- graph
- server
- 따배씨
- 따라하면서 배우는 C언어
- C언어
- 생활코딩
- C
- udemy
- 인프런
- BASIC
- Python
- 종만북
- JavaScript
- greedy
- 따라하며 배우는 C언어
- BOJ
- String
- Math
- php
- web
- programmers
- 정수론
- DP
- sorting
- BFS
- dfs
- Cleancode
- Algorithm
- Today
- Total
목록Algorithm (156)
몽상실현개발주의
[BOJ] 1931 /회의실 배정 / Python 파이썬 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 회의실을 배정 할 수 있는 경우 중 가장 좋은 조건을 선택하는 탐색 문제이다. 한번의 탐색 만으로 해답을 찾기 위해서는, 탐색을 하는 순서가 중요하다. 회의실을 예약 할 수 있는 기회가 많이 주어지는 경우는, 이전 회의가 되도록 이른시간에 종료되는 경우이다. 이른시간에 종료되는 회의 중에서도 빨리 시작하는 회의가 우선적으로 예약될 가능성이 높다. 위 두가지의 조건으로 미리 회의실 예약 시간을 정렬하여 탐색을 진행하였다. N = int(input()) ..
[BOJ] 1783 / 병든 나이트 / Python 파이썬 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 모든 경우의 수 고려하는 방법으로 구하는 문제가 아닌 조건을 단순화하여 계산하는 문제이다. 나이트는 체스판의 가장 왼쪽 아래에서 오른쪽 방향으로 위 또는 아래로 움직일 수 있다. 이것은 충분한 세로 공간만 존재한다면, 오른쪽 방향으로만 움직이게 된다는 것이다. 1. 오른쪽 1칸 위 2칸 -> 오른쪽 1칸 아래 2칸 == 오른쪽 2칸 2. 오른쪽 2칸 위 1칸 -> 오른쪽 2칸 아래 1칸 == 오른쪽..
[BOJ] 10610 / 30 / Python 파이썬 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 풀이 주어진 숫자들의 조합으로 가장 큰 30의 배수를 찾는 문제이다. 숫자를 정렬하여 0이 포함되는지 확인하고, 나머지 숫자들이 3의 배수인지 확인하였다. 3의 배수는 각 자리수를 더한 값이 3의로 나누어 떨어지는 숫자이다. nums = list(map(int, list(input()))) nums.sort(reverse=True) def che..
[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번 장대로 옮기기 그리고 마지막 원판을 옮기기 위해서는 그 이전의 원판들의 작업이 진행..