본문 바로가기

코딩테스트/백준 알고리즘 풀이30

[백준 알고리즘/python] 백준 2775번 부녀회장이 될테야, 파이썬 백준 알고리즘 2775번 부녀회장이 될테야, 파이썬 이번 문제는 백준 알고리즘의 2775번 부녀회장이 될테야. 문제이다. 파이썬으로 풀어보았다. 문제를 대충 설명하면 아파트의 거주 조건이 A층의 B호에 살려면 A-1층에서 B호까지 있는 사람들 수의 합만큼 데려와 살아야한다. 또, 0층의 i호에는 i명의 사람이 살고 있다. 이게 이렇게 보면 뭔말인가.. 싶겠지만 대충 표로 정리하면 한 눈에 보인다. 4층 1 6 21 56 126 252 3층 1 5 15 35 70 126 2층 1 4 10 20 35 56 1층 1 3 6 10 15 21 0층 1 2 3 4 5 6 1호 2호 3호 4호 5호 6호 그러니까 예를 들어서, 빨갛게 표시 해 놓은 2층의 3호에 살려면 1층의 1호부터 3호까지있는 1 + 3 + 6 .. 2020. 4. 3.
[백준 알고리즘/python] 백준 10250번 ACM 호텔, 파이썬 백준 알고리즘 10250번 ACM 호텔, 파이썬 이번 문제는 백준 알고리즘의 10250번 ACM 호텔이다. 파이썬으로 풀어보았다. 그러니까 요약해보면, 손님들이 걷는게 귀찮으니까 많이 안걸어도 되는 방을 선호하기 때문에, 선착순으로 거리가 가까운 방을 배정하려고 하는 것이다. 엘리베이터와 제일 가까운쪽이 1호이고 먼쪽이 호텔의 길이 W호이다. 방의 호수는 호텔의 층 H와 W로 이루어진다. 그럼 문제를 파 보자. # 조건 1. 입력은 첫째줄에 테스트 케이스의 수, 두번째 줄에, 층의 높이, 한층에 있는 방의 수, 배정 할 손님의 수가 주어진다. # 조건 2. 출력은 몇 호에 마지막 손님이 배치되는지이다. 문제에 대한 내 생각이다. 그 전에, 나는 이거 문제 보자마자 생각한게, 대체 W는 왜 필요한거지? 라.. 2020. 4. 2.
[백준 알고리즘/python] 백준 2869번 달팽이는 올라가고 싶다, 파이썬 백준 알고리즘 2869번 달팽이는 올라가고 싶다, 파이썬 이번 문제는 백준 알고리즘의 2869번 달팽이는 올라가고 싶다. 문제이다. 파이썬으로 풀어보았다. 문제는 간단하다. V높이의 막대에 낮에는 A만큼 올라가고 밤에는 B만큼 올라간다. 그냥 간단한 산술 문제이다. 나는 처음에 while문을 돌렸다가 시간초과로 실패를 했다. 그 코드와 생각을 먼저 올려보려 한다. 문제에 대한 처음 생각 #생각 1. 반대로 위에서부터 내려가는 걸로 생각 #생각 2. V에서 A만큼 빼주고 B만큼 올려주고, count를 1올리는것 반복. #생각 3. 하지만 A만큼 빼 줬을때 V가 이미 0보다 작거나 같다면 그냥 카운트를 출력 실패한 코드(이유: 시간초과) A, B, V = map(int, input().split()) cou.. 2020. 3. 27.
[백준 알고리즘/python] 백준 1193번 분수찾기, 파이썬 백준 알고리즘 1193번 분수찾기, 파이썬 이번에 풀어 볼 문제는 백준 알고리즘의 1193번 분수찾기 문제이다. 파이썬으로 풀어보았다. 나는 머리가 딸려서 그런가 문제 이해하는데 한참 걸린거 같은데, 한번 표에 화살표를 그려봤다. 수열이 저런식으로 진행이 되는데 저기서 X가 주어지면 X번째에 있는 분수를 구하는 프로그램이다 일단 문제에 대한 생각이다. #생각 1. 지그재그가 시작되는 첫 원소?를 잘 살펴보면 첫째줄 (1/1) 둘째줄 (1/2) 셋째줄(3/1) 분자나 분모가 그 줄이 몇번째인지를 알려주고 있다. #생각 2. 그 줄이 몇번째인지 알면 당연히 그 줄에 있는 원소의 개수도 알 수 있다. 1>1 2>2 3>3 #생각 3. 1과 2를 가지고, X를 입력받았을때, X보다 처음으로 크게 나오는 1 + .. 2020. 3. 25.
[백준 알고리즘/python] 백준 2292번 벌집, 파이썬 백준 알고리즘 2292번 벌집, 파이썬 이번 문제는 백준 알고리즘의 2292번 벌집 문제이다. 역시 파이썬으로 풀어보았다. 문제 이해를 잘 해보면 방 1을 1개로 치고 그 번호가 매겨져 있는 방까지 문을 몇번 열어야 갈 수 있냐는 문제이다. 잘 보면 중심에있는 1번방은 하나, 2번부터 7번까진 두개, 8번부터 19번까진 3개이다. 이걸 수열로 정리해보면 1 7 19 37 61.... 이런식이다. 고등학교때 배웠던 "계차수열"이 떠오른다. 무슨 수열 형탠지는 알겠는데, 계차수열의 일반항을 구하는 식이 생각나지 않아서 검색 해 봤다. 결론은 An = A1 + Bn(n = 1 부터 n = k-1)까지의 합이다. 나는 수학 설명을 하는 재능은 딱히 없으니, 더 궁금하면 찾아보도록 하자. 이 식을 통해 위 문제를.. 2020. 3. 23.