백준 5

[boj 2164.python] '카드2' 풀이 (시간초과 해결)

https://www.acmicpc.net/problem/2164접근 방식처음에 문제 읽자 마자, 쉬운 구현 문제라고 생각하고 냅다 단순 리스트로 풀어버렸다. 1차 코드 (리스트 사용) 👉 실패 ❌N = int(input())# 카드 리스트 생성card = [i + 1 for i in range(N)]# 카드 섞기def card_mix(): while len(card) > 1: # 카드가 한 장 남을 때까지 반복 # 제일 위에 있는 카드 바닥에 버림 card.pop(0) # 그 다음 위에 있는 카드는 제일 아래에 있는 카드 밑으로 옮김 card.append(card[0]) card.pop(0) print(card[0])card..

Algorithm/BaekJoon 2024.12.18

[boj 14888.python] '연산자 끼워넣기' 파이썬 풀이 (feat. 브루트포스, DFS 비교)

https://www.acmicpc.net/problem/14888문제 출력 문제 접근문제 난이도 자체는 어렵지 않은 문제였다.처음에는 브루트포스(완탐)와 DFS 사이에서 고민하다가, DFS로 구현하려면 각 연산자를 선택하는 과정을 재귀 호출로 구현해야 할 것 같았다. 아직 그 부분은 미흡해서 브루트포스로 풀 수 있을까? 하고 고민했는데 ,, 그래서 시간 복잡도를 계산해 봤다. N - 1개의 연산자에 대해 가능한 모든 순열을 생성해야 하니까, 경우의 수는 (N - 1)!과 같을거다. '입력'에서 N의 조건을 보면 N의 최대값은 11 이다. 즉, 최대 경우의 수는 10! = 3,628,800이라는 말 ! 그래서 이 문제의 경우는 브루트포스로도 충분히 풀 수 있을 거라고 판단해 브루트포스 방법을 채택해서 문..

Algorithm/BaekJoon 2024.12.03

[boj 1092.python] '배' 풀이 (feat. 언어만 바꿔도 통과, Python3와 PyPy3의 차이)

https://www.acmicpc.net/problem/1092  1차 시도 👉 시간 초과 실패N = int(input()) # 크레인 갯수cranes = list(map(int, input().split())) # 각 크레인의 무게 제한M = int(input()) # 박스의 갯수boxes = list(map(int, input().split())) # 각 박스의 무게cranes.sort(reverse = True)boxes.sort(reverse = True)# 예외 처리if boxes[0] > cranes[0]: print(-1)# 시간이 얼마나 걸리는지 계산time = 0while boxes: time += 1 for crane in cranes: # 각 크레인이 ..

Algorithm/BaekJoon 2024.09.23

[boj 1244.python] '스위치 켜고 끄기' 풀이

https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 문제 이러한 규칙에 따라 학생들이 스위치를 조작하고 난 후의 스위치 상태를 구해야 한다. (자세한 입/출력 설명과 예제는 포스팅 상단의 문제를 참고해주길 바란다) 문제 이해 알고리즘 문제 푼 지 2주차가 되어 가니 슬슬 어느 지점에서 어떻게 생각해야 편할지 길이 보이는 것 같기도 하다. 남자와 여자의 행동 양식이 달라서, 남자 여자를 따로 생각하고, 와중에 남자/ 여자가 똑같이 해야하는 부분..

Algorithm/BaekJoon 2024.01.15

[boj 1966.python] 프린터 큐 풀이

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 문제 이해 1. 예시를 읽고 아, 중요도의 순서 숫자가 큰 순서대로 중요하다는 거구나 생각했다. 현재 문서는 0번째이고, 문서의 중요도를 체크하기 위해서는 내장함수 max()를 사용하면 되겠다고 생각했다. 2. 중요한 것은, 중요도가 높은 문서가 입력되면 앞서 대기하던 문서는 뒤로 밀린다는 점이다. 그렇다면 큐를 이용해 문서의 순서를 관리하면서 문서의 중요도에 따라 출력 순서를 변경하는 식으로 ..

Algorithm/BaekJoon 2024.01.04