Algorithm/Greedy, Implementation

    [Java] 백준 #1780 종이의 개수

    https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net N x N 행렬 종이 → 각각 -1, 0, 1 중 하나 저장 규칙에 따라 적절한 크기로 종이 자르기 종이가 모두 같은 수 → 그대로 사용 모두 같은 수 x → 같은 크기의 종이 9개로 자르고 각각의 잘린 종이에 대하여 1번 과정 반복 이와같이 종이를 잘랐을 때 -1, 0, 1로만 채워진 종이의 개수 각각 구하기 N은 3^k꼴, 1 ≤ N ≤ 3^7 💡 알고리즘 분할 정복, 재귀 💡 접근..

    [Python] 백준 #18111 마인크래프트

    18111번: 마인크래프트 (acmicpc.net) 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업 세로N, 가로M 크기의 집터, 맨 왼쪽 위의 좌표 (0, 0) 좌표 (i, j)의 가장 위에 있는 블록 → 인벤토리 : 1초 인벤토리 → 좌표 (i, j)의 가장 위에 있는 블록 위에 놓음 : 2초 0 ≤ 땅의 높이 ≤ 256 땅을 고르는 데 걸리는 최소시간의 (시간, 높이) 출력 (높이가 가장 높은 답) 💡 알고리즘 구현, 브루트포스 알고리즘 💡 접근 처음..

    [Python] 백준 #7568 덩치

    7568번: 덩치 (acmicpc.net) 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 💡 알고리즘 구현, 브루트포스 알고리즘 💡 접근 방법 덩치 (x kg, y cm) A, B의 덩치 (x, y) (p, q) 덩치가 더 크려면 x > p, y > q 덩치 등수 : 자신보다 큰 덩치 사람의 수 + 1 같은 덩치 등수 여러명도 가능 2등이 3명 → 3, 4등 없음 N명의 몸무게, 키를 읽어서 각 사람의 덩치 등수 계산하여 출력 “덩치 등수 : 자신보다 큰 덩치 사람의 수 + 1” 조건에 집중해서..

    [Python] 백준 #1874 스택 수열

    1874번: 스택 수열 (acmicpc.net) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 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 32 N = int(input()) #수열의 크기 N des = [] # 만들고자 하는 수열 des stack = [] # 원소들을 push, pop 리스트 new_des = [] # ..

    [Python] 백준 #1181 단어 정렬

    https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 1 2 3 4 5 6 7 8 N = int(input()) word_list = [] for i in range (N) : word = str(input()) if word not in word_list : word_list.append(word) word_list.sort(key = lambda x : (len(x), x)) print("\n".join(word_list)) cs la..

    [Python] 백준 #1085 직사각형에서 탈출

    https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 1 2 3 4 5 6 7 x, y, w, h = map(int, input().split()) dis_list = [] dis_list.append(w - x) dis_list.append(x) dis_list.append(h - y) dis_list.append(y) print(min(dis_list)) cs