본문 바로가기

Algorithm/Greedy27

[파이썬] 백준 1736 : 쓰레기 치우기 (골드1) [파이썬] 백준 1736 : 쓰레기 치우기 (골드1) https://www.acmicpc.net/problem/1736 문제 방은 세로 N, 가로 M (1 ≤ N, M ≤ 100) 크기의 격자 판으로 표현할 수 있다. 왼쪽 위의 위치를 (0, 0)이라 하고, 오른쪽 아래를 (N - 1, M - 1)이라고 하자. 이 판의 몇몇 칸에는 쓰레기가 놓여 있다. 쓰레기를 로봇을 사용해서 수거하려고 하는데, 로봇은 왼쪽 위에서 출발해 오른쪽 아래로 도착한다. 즉, 로봇은 현재 위치에서 오른쪽, 혹은 아래쪽으로밖에 이동할 수 없다. 이때, 모든 쓰레기를 수거하기 위해서 필요한 최소 로봇의 수를 출력하는 프로그램을 작성하시오. 입력 첫 행에는 N, M이 공백으로 구분되어 주어진다. 다음 N 행에 걸쳐 M 개의 수가 주.. 2024. 2. 18.
[파이썬] 프로그래머스 : n+1 카드게임 (Lv.3) [파이썬] 프로그래머스 : n+1 카드게임 (Lv.3) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방향성 생각 각 원소가 겹치지 않음 -> 두 자연수로 n+1를 만드는 경우는 유일함 (a가 정해지면 나머지는 n+1-a) 두 장을 뽑아서 기존의 패와 매칭할 수 있으면 코인을 사용해서 패에 넣기 매칭할 수 없으면 temp에 넣어놓기. hand 내에서 2장 내기 안되는 경우 hand 와 temp를 매칭해서 2장 내기. temp 내에서 코인 하나를 사용하기 안되는 경우 temp 내에서 매칭해서 2장 내기. temp 내에서 코인 두개를 사용하기 그렇지 않.. 2024. 1. 18.
[파이썬] 백준 30015 : 학생회 뽑기 (골드3) [파이썬] 백준 30015 : 학생회 뽑기 (골드3) 30015번: 학생회 뽑기 2, 3, 4번 학생을 학생회로 뽑으면 $X=31\,\&\, 27\,\&\, 29=11111_{(2)}\,\&\, 11011_{(2)}\,\&\, 11101_{(2)}=11001_{(2)}=25$ 가 된다. 학생회의 능력이 $25$를 넘도록 학생회 멤버를 뽑을 수 없음을 증명할 수 있다. www.acmicpc.net 문제 풀이 방향성 생각 20자리 비트를 모두 체크한다. 100(2) > 11(2). 비트의 자리수가 커지면 이전 비트들을 모두 합해도 더 크다. (등비수열 합) MSB부터 순차적으로 확인한다. 특정 비트 자리수에서 1이 K개 이상이면 그 숫자들을 모으고 낮은 비트 자리수 체크를 반복 전체코드 N,K = map(i.. 2024. 1. 17.
[파이썬] 백준 13904 : 과제 (골드3) [파이썬] 백준 13904 : 과제 (골드3) 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 문제 풀이 방향성 생각 뒤에서 부터 시작하기 전체코드 from collections import defaultdict as dd import heapq as hq import sys input = lambda : sys.stdin.readline().rstrip() table = dd(list) for _ in range(int(input())): d,p = map(int,input().split()) table[d].append(-p) info = sorted.. 2023. 12. 19.