BOJ5 [백준/BOJ] 17020 삼삼한 수 (파이썬 Python) https://www.acmicpc.net/problem/17252 처음엔 경우의 수로 일일이 풀어야 하나 싶었는데, 3의 거듭제곱이 겹치지 않아야 한다는 조건에서 힌트를 얻었다. 즉, 현재 값에 최대한 근접한 3의 거듭제곱을 찾아 빼고 난 뒤의 값이 여전히 위에서 찾은 3의 거듭제곱보다 크다면 한번 더 사용해야 하므로 이러한 조건에선 무조건 NO를 말하게 했다. 이외 조건에선 마지막에 3^0을 포함해 현재 값에 계속해서 빼나갔을 때 0이되면 3의 거듭제곱으로 중복되지 않고 만들 수 있다는 얘기이므로 YES를 출력하게 했다. import sysinput = sys.stdin.readlinen = int(input())def check(n): for i in range(21): tm.. 2024. 11. 27. [백준/BOJ] 15738 뒤집기 (파이썬 Python) https://www.acmicpc.net/problem/15738 어려운 PS 문제는 아니었고 왼쪽에서 또는 오른쪽에서 뒤집을 때 규칙만 잘 찾아내면 되는 문제이다. 따지고 보면 N, K, M 과 i 값만 필요할 뿐 배열의 요소는 받고 전혀 활용되지 않기 때문에 input( )으로만 남겨두어도 무방할 것 같다. import sysinput = sys.stdin.readline# 입력n, k, m = map(int, input().split())arr = list(map(int, input().split()))# 알고리즘for _ in range(m): i = int(input()) if i > 1 and k = n+i+1: k = 2 * (n + i + 1) - i - 1 - .. 2024. 11. 21. [백준/BOJ] 16960 스위치와 램프 (파이썬 Python) https://www.acmicpc.net/problem/16960 우선 입력 받은 모든 램프 번호에 대한 갯수를 저장해 둔다. 그리고 스위치를 하나씩 없애보면서 해당 스위치에 대한 램프 또한 갯수에서 1을 뺀다. 이때 램프 번호 중 0이 한번이라도 존재하지 않는다면, 스위치 하나를 없애도 램프를 다 켤 수 있다는 뜻이므로 스위치 하나를 없앴을 때 램프의 갯수 중 0이 있는지를 확인해 이후 결과를 0 또는 1로 지정한다. import sysinput = sys.stdin.readline# input 단계n, m = map(int, input().split())lamp = dict(zip(list(range(1, m+1)), [0 for _ in range(1, m+1)]))switch = [lis.. 2024. 11. 20. [백준/BOJ] 27919 UDPC 파티 (파이썬 Python) https://www.acmicpc.net/problem/27919 막연히 U, D, P 갯수만 세면 되겠다 싶었는데 생각해보니 U와 C의 문자 갯수를 더한 값이 P와 D를 더한 갯수의 절반보다 많으면 무조건 U는 최대 득표로 선정되는 걸 발견할 수 있었다. D나 P의 최대 득표 경우는 더 쉬운데, 문자열중에 D나 P가 있으면 무조건 최대 득표로 선정될 수 있다. 왜냐하면 모든 U를 C로 간주하면 D나 P가 있기만 해도 최대 득표의 경우가 되기 때문이다. 따라서 코드 솔루션은 아래와 같다. words = input()uc_cnt = words.count('U')+words.count('C')dp_cnt = words.count('D')+words.count('P')if uc_cnt > (dp_cnt.. 2024. 11. 19. 이전 1 2 다음