본문 바로가기

728x90
반응형

백준 write-up/정렬 & 그리디

(84)
[백준] 햄버거 분배 : 19941번 - Python https://www.acmicpc.net/problem/19941 19941번: 햄버거 분배 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사 www.acmicpc.net 문제를 풀면서 몰랐던 개념 반복문에서 변수의 범위를 지정할 때 괄호 안에만 범위를 지정할 수 있는 것이 아니라, 조건문을 사용해서 변수의 범위를 지정해준 후 구현할 수 있다. 문제의 접근 방법 - 최대한 많은 사람들이 햄버거를 먹으려면, 마지막 사람이 햄버거를 먹을 경우를 대비해서 최대한 자신에게 인접한 햄버거들 중 제일 왼쪽 햄버거를 먹어야 함. - 햄버거를 먹었다면 중복되지 않게 먹은 표시를..
[백준] 피보나치 : 9009번 - Python https://www.acmicpc.net/problem/9009 9009번: 피보나치 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 n www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] for문을 이용한 피보나치 수열 : 피보나치 수열의 일반형은 fibo(n) = fibo(n-1) + fibo(n-2) 이다. ex) fibo(1) = 1이라면, fibo(2) = fibo(1) fibo(3) = fibo(2) + fibo(1) fibo(4) = fibo(3) + fibo(2) # 여러가지 방법으로 구현할 수 있지만 이번에는 for문을 이용한 ..
[백준] A와 B : 12904번 - Python https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 리스트에서 마지막 원소 찾기 : my_list[-1]로 쓰면된다. 그 외에도 맨 뒤에서 n번째 원소를 찾아내려면 my_list[-n]을 쓰면 된다!!! 이런식으로 지정해서 원소들 변경도 가능. # 마지막 원소 찾아내서 값 변경하기 my_list = [ 'one2ye', 'loves', '20s' ] my_lis..
[백준] 사과 담기 게임 : 2828번 - Python https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M position: count += (left-position) right -= (left-position) left = position else: count += (position-right) left += (position-right) right = position print(count)
[백준] 과제 : 13904번 - Python https://www.acmicpc.net/problem/13904 13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 값이 0으로 채워진 배열 만들기 result = [ 0 for _ in range(1000)] (2) while 문은 값이 0이 되면 false여서 반복문을 탈출한다. -> 꼭 True일 때만 반복하지 않아도 된다! (3) [Python] swipe : C언어랑 달리 두 값을 등호(=)를 두고 위치를 바꿔주기만 하면 두 값이 바뀐다. one2ye, 20s = 20s, one2ye 문제의 접근..
[백준] 폴리오미노 : 1343번 - Python https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 문제를 풀면서 몰랐던 개념 - replace 함수로 따로 떨어져있는 문자열이 아니라 붙어있는 것도 바꿀 수 있다는 것을 알았다... ex) 내가 생각한 replace 함수 기능: "one2ye, one2ye, 20s" 에서 "20s"를 "seonho"로 바꿀 때 쓸 수 있다. 즉, 문자열이 리스트처럼 분리되어있을 때만 사용가능하다고 생각했다. "one2yeLoves20s" -> "20s"를 "Seonho"로 바꾸는 것도 할 수 있음! N = "one2yeLoves20s" N = N.replace("2..
[백준] 게임을 만든 동준이 : 2847번 - Python https://www.acmicpc.net/problem/2847 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net 문제를 풀면서 몰랐던 개념 [Python] for문에서 숫자를 감소시키면서 반복하기 -> 증가 폭을 음수로 설정하기! arr = [ '20s', 'loves', 'one2ye' ] for i in range(len(arr), 0, -1): print(arr[i-1], end = ' ') # 출력결과 >>> one2ye loves 20s * arr의 길이의 수부터 0까지 -1씩 감소하면서 거꾸로 ..
[백준] 세탁소 사장 동혁 : 2720번 - Python https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net https://ye5ni.tistory.com/69 ===> 참고(비슷한 유형) 문제의 접근 방법 - 거스름돈 C원은 정수로 이루어져 있고 단위가 센트(1달러 = 100센트)이기 때문에 쿼터, 다임, 니켈, 페니도 같은 단위로 바꾸어주기 - 각 동전의 단위가 몇 개씩 쓰여야하는지 확인하기 위해 초기 값을 0으로 설정해두기 - C원을 25(쿼터), 10(다임), 5(니켈), 1(페니)순으로 나눈 몫을 갯수에 카운트하고 그 나머지를 그 다음으로 작은 단위로 또 나눠주는 ..

728x90
반응형