[백준 14939번] 파이썬 - 불끄기
백준 14939 - 불 끄기 시간 제한 1초, 메모리 제한 256MB # 조건 전구 100개가 10×10 정사각형 모양으로 늘어서 있다. 전구에 달린 스위치를 누르면 그 전구와 위, 아래, 왼쪽, 오른쪽에 있는 전구의 상태도 바뀐다. 전구 100개의 상태가 주어지면 모든 전구를 끄기 위해 최소한으로 눌러야 하는 스위치의 개수를 출력하라 # 접근 방법 브루트 포스와 그리디를 활용하여 비트마스킹으로 풀어줘야 하는 문제였다.. 비트마스킹으로 첫 줄의 모든 경우의 수를 구하는 아이디어가 잘 생각이 나지 않아 다른 블로그를 참고하였다. https://bio-info.tistory.com/234 핵심은 첫 행의 전구 10개에 대해 켜고 끄는 모든 경우의 수 2 ^ 10 = 1024개에 대하여, 두 번째 행부터는 윗..
2023.05.09
[백준 1450번] C++ - 걷기
백준 1459_걷기 시간 제한 2초, 메모리 제한 128MB **# 조건 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 (X, Y)에 위치한 집으로 가려고 한다. 세준이가 걸을 수 있는 방법은 두가지 인데, 하나는 도로를 따라서 가로나 세로로 한 블록 움직여서 이번 사거리에서 저 사거리로 움직이는 방법이고, 블록을 대각선으로 가로지르는 방법이 있다. 세준이가 집으로 가는데 걸리는 최소시간을 구하는 프로그램을 작성하시오. # 접근 방법 우선 입력으로 주어지는 한 블록 가는 시간과 대각선으로 가로지르는 시간을 비교해준다. 2블록 가는 시간이 대각선으로 가로지..
2023.05.03
[백준 19941번] C++ - 햄버거 분배
백준 19941_햄버거 분배 시간 제한 0.5초(추가 시간 없음), 메모리 제한 256MB # 조건 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 K 이하인 햄버거를 먹을 수 있다. ![[Algorithm/baekjoon_cpp/assets/Pasted image 20230501232934.png]] 위의 상태에서 K = 1인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다. 10번의 위치에 있는 사람은 11번 위치에 있는 햄버거를 먹을 수 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다. 2번 위치에 있는 사람: 1번 위치에 있는 햄버거 4번 위치에 있는 사람: 5번 위치에 있는 ..
2023.05.01
[백준 10775번] 파이썬 - 공항
백준 10775_공항 시간제한 1초(추가 시간 xx), 메모리 제한 256MB 조건 오늘은 신승원의 생일이다. 박승원은 생일을 맞아 신승원에게 인천국제공항을 선물로 줬다. 공항에는 G개의 게이트가 있으며 각각은 1에서 G까지의 번호를 가지고 있다. 공항에는 P개의 비행기가 순서대로 도착할 예정이며, 당신은 i번째 비행기를 1번부터 gi (1 ≤ gi ≤ G) 번째 게이트중 하나에 영구적으로 도킹하려 한다. 비행기가 어느 게이트에도 도킹할 수 없다면 공항이 폐쇄되고, 이후 어떤 비행기도 도착할 수 없다. 신승원은 가장 많은 비행기를 공항에 도킹시켜서 박승원을 행복하게 하고 싶어한다. 승원이는 비행기를 최대 몇 대 도킹시킬 수 있는가? 입력 첫 번째 줄에는 게이트의 수 G (1 ≤ G ≤ 105)가 주어진다..
2023.04.18
[백준 2012번] 파이썬 - 등수 매기기
http://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net # 조건 2007년 KOI에 N명의 학생들이 참가하였다. 경시일 전날인 예비소집일에, 모든 학생들은 자신이 N명 중에서 몇 등을 할 것인지 예상 등수를 적어서 제출하도록 하였다. KOI 담당조교로 참가한 김진영 조교는 실수로 모든 학생의 프로그램을 날려 버렸다. 1등부터 N등까지 동석차 없이 등수를 매겨야 하는 김 조교는, 어쩔 수 없이 각 사람이 제출한 예상 등수를 바탕으로 임의로 등수를 매기기로 했다...
2023.03.07
[백준 1049번] 파이썬 - 기타줄
http://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net # 조건 Day Of Mourning의 기타리스트 강토가 사용하는 기타에서 N개의 줄이 끊어졌다. 따라서 새로운 줄을 사거나 교체해야 한다. 강토는 되도록이면 돈을 적게 쓰려고 한다. 6줄 패키지를 살 수도 있고, 1개 또는 그 이상의 줄을 낱개로 살 수도 있다. 끊어진 기타줄의 개수 N과 기타줄 브랜드 M개가 주어지고, 각각의 브랜드에서 파는 기타줄 6개가 들어있는 패키지의 가격, 낱개로 살 ..
2023.01.30
[백준 1700번] 파이썬 - 멀티탭 스케줄링
http://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net # 조건 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전기용품의 플러그를 뺐다 꽂았다 하는 불편함을 겪고 있다. 그래서 준규는 자신의 생활 패턴을 분석하여, 자기가 사용하고 있는 전기용품의 사용순서를 알아내었고, 이를 기반으로 플러그를 빼는 횟수를 최소화하는 ..
2022.12.27
[백 준 1946번] 파이썬 - 신입 사원
문제 참고 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 이해부터 조금 난해한 문제였다.. 결론은 서류 성적과 면접 성적 중 그 누구와 비교해도 두 성적 모두 낮지만 않으면 된다. 브루트포스와 같이 2중 for문을 통한다면 정말 쉽게 구할 수 있을 줄 알았다. # 시간초과 1 #입력받은 성적을 순회하며 두 성적 모두 떨어진다면 제외 for j in range(len(grade)): for k in range(len(..
2022.08.17
[백준 1931번] 파이썬 - 회의실 배정
문제 참고 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 정해진 시간 동안 가장 많이 회의를 진행하는 문제였다. 시작 시간과 끝나는 시간에 대한 정렬을 통하여 비교 기준을 저장해주고 반복문을 통해 비교를 해주었다. 처음엔 정렬을 하지않고 2중 for문을 통하여 기준을 그때그때 바꿔주려고 하였다. # 1931_회의실 배정 # N개의 회의에 대해 회의실 사용표를 만든다. # 각 회의 I에 대해 시작 시간과 끝나는 시간이 있고 회의가 겹치지 않으며 사용할 수 있는 최대 개수 # 회의는 중간에 중단 불가하고 회의의 시작 시간과 끝나는 시간이 같을 수 있다. # 전체..
2022.08.17