Programming/Algorithm
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cebfbE/btslEWDpbeC/OfOk6KrX1sQqYZKlVG3VZ0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 📕 나의 풀이 📕 문제의 각 조건에 맞게 구성하여 풀이하였다. split을 통해 2개를 받냐 1개를 받냐가 관건이었다. 꽤나 수월하지만 오류가 많이 났던 문제이다. 🧑🏻💻 나의 코드 🧑🏻💻 import sys S = set() N = int(sys.stdin.readline()) for _ in range(N): word_and_x = sys.stdin.readline().strip().split() if len(word_an..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bILT9r/btslufJf8tz/I5dMOaMbyCrziJQ3kqbKX0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 📕 나의 풀이 📕 삼각형의 조건과 여러 조건문을 사용해 풀이하였다. 🧑🏻💻 나의 코드 🧑🏻💻 while 1: a, b, c = map(int, input().split()) if a == 0: break max_ = max(a,b,c) if a + b + c - max_
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/mOVU3/btsltjFgoQz/zlL6yODNA8w0oQ70WRSvY1/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변 각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오. www.acmicpc.net 📕 나의 풀이 📕 행, 열 별로 앉을 수 있는 자리 개수를 구해 곱한다. 앉을 수 있는 자리 개수는 {길이 / ( 비우고 앉아야 하는 자리 개수 + 1)}을 반올림 한 값이다. 🧑🏻💻 나의 코드 🧑🏻💻 import math H, W, N, M = map(int, input().split()) row = math.ceil(H / (N + 1)) col = math.ceil(W / (M + 1)) print(row * col)
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/qZwFq/btsjnG3hH5O/R8urh2oX1k9hKMRRzakGp0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 📕 설명 📕 소수와 팰린드롬을 구분하는 function을 각각 만들고 반복문을 통해 확인한다. 🧑🏻💻 나의 풀이 🧑🏻💻 import math def isPrime(x): if x == 1: return False for i in range(2, int(math.sqrt(x)+1)): if x % i == 0: return False return True d..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cpXHrA/btsi2eOcl4A/wIQwBldZ38elZk4EVYxjS0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 📕 설명 📕 사분면을 추적하며 풀이했다. 생각보다 어려웠다. 🧑🏻💻 나의 풀이 🧑🏻💻 N, R, C = map(int, input().split()) cnt = 0 while N > 1: size = (2 ** N) // 2 if R C: cnt += size ** 2 * 2 R -= size el..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/dwxg6W/btsiSRQTooC/vXf87kbsGzdybA2ciuqgLk/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/2290 2290번: LCD Test 첫째 줄에 두 개의 정수 s와 n이 들어온다. (1 ≤ s ≤ 10, 0 ≤ n ≤ 9,999,999,999)이다. n은 LCD 모니터에 나타내야 할 수 이며, s는 크기이다. www.acmicpc.net 📕 설명 📕 7 segments 문제라고한다. 어려웠다. 🧑🏻💻 나의 풀이 🧑🏻💻 S, N = map(int, input().split()) N = str(N) M = 2 * S + 3 ans = [[" "] * ((S + 2) * (len(N)) + (len(N) - 1)) for _ in range(M)] st = 0 for i in N: if i == '1': st += S + 1 for j in r..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/zpkiJ/btsiu1Owuad/BNZNfVw2cd0OA46TKR22m1/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/2502 2502번: 떡 먹는 호랑이 첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤ A ≤ B)가 존재한다. www.acmicpc.net 📕 설명 📕 피보나치 변형문제. 쉽지만은 않았다. 🧑🏻💻 나의 풀이 🧑🏻💻 import sys d, k = map(int, input().split()) a, b = 1, 1 for _ in range(4, d + 1): a, b = b, a + b a_c = 1 b_c = 0 while True: tmp = k - a * a_c if tmp < 0: break if tmp % b =..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/ckZnHV/btsijfM8wsz/GEqM3uzm0yL7SFGA2BtAwk/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 📕 설명 📕 DP 문항. 어렵다. 하나씩 값을 기억하며 간다. 🧑🏻💻 나의 풀이 🧑🏻💻 N = int(input()) li = [] dp = [[0] * N for _ in range(N)] for i in range(N): li.append(list(map(int, input().split()))) dp[0][0] = li[0][0] for i in range(1, N): for j in range(0, i+1): if j == 0: dp[i][j] = dp[i..