본문 바로가기

공부/알고리즘42

[알고리즘][백준] 1463번 1로 만들기 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 단순하게 3의 배수로 만들고 진행하면 되겠다 싶어서 아래와 같이 코드를 작성했는데 import sys n = int(sys.stdin.readline()) cnt = 0 ''' 10 → 9 → 3 → 1 10 → 5 → 4 → 2 → 1 10 11 12 15 ''' while n != 1: if n % 3 == 1: n -= 1 n //= 3 cnt += 2 elif n % 3 == 2: n -= 2 n //= 3 cnt += 3 elif n % 3 == 0: n //= 3 cnt += 1 elif n % 2 .. 2024. 3. 4.
[알고리즘][백준] 17103번 골드바흐 파티션 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/17103 17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 6588번 골드바흐의 추측을 응용한 문제이다 1,000,000개의 수를 매번 소수인걸 확인하기엔 메모리사용이 엄청나기 때문에 먼저 에라토스테네스의 체를 사용하여 소수를 구별한다. import sys t = int(sys.stdin.readline()) sosu = [True] * 1000001 for i in range(2, int(len(sosu)**0.5)+1): if sosu[i]: for j.. 2024. 3. 3.
[알고리즘][백준] 2089번 -2진수 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net 1 -> 1 2 -> 110 = 4 -2 0 3 -> 111 = 4 -2 1 4 -> 100 5 -> 101 6 -> 11010 = 16 -8 -2 7 -> 11011 = 16 -8 -2 1 8 -> 11000 = 16 -8 9 -> 11001 = 16 -8 1 10 -> 11110 = 16 -8 4.. 2024. 3. 3.
[알고리즘][백준] 1373번 2진수 8진수 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 2진수를 세자리씩 끊으면 8진수가 완성되는 것을 활용해서 입력받은 값의 길이가 3의 배수가 아니면 앞에 '0'을 필요한 만큼 채워주고 각자리마다 값을 곱해서 붙여주었다 import sys n = str(sys.stdin.readline().rstrip()) ''' n[0] n[3] 0+3*i 2**0 n[1] n[4] 1+3*i 2**1 n[2] n[5] 2+3*i 2**2 ''' # 11 001 100 -> 011 001 100 if len(n) % 3 == 2: n = '0' + n m = (le.. 2024. 3. 1.