Algorithm/Python 6

[Algorithm] 백준 19532번 : 수학은 비대면강의입니다

문제 https://www.acmicpc.net/problem/19532 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 처음 풀이 코드 (Numpy 라이브러리 이용) import numpy as np a, b, c, d, e, f = map(int, input().split()) A = np.array([[a,b],[d,e]]) B = np.array([c,f]) C = np.linalg.solve(A,B..

Algorithm/Python 2022.06.12

[Algorithm] 백준 22352번 : 항체 인식

문제 https://www.acmicpc.net/problem/22352 22352번: 항체 인식 첫 번째 줄에는 SP 촬영 결과의 크기를 의미하는 두 정수 $N$과 $M$이 주어진다. ($1 \le N, M \le 30$) 이는 촬영 결과가 세로로 $N$칸, 가로로 $M$칸 크기의 격자라는 것을 의미한다. 다음 $N$개의 줄에는 www.acmicpc.net 풀이코드 (Python) from collections import deque n, m = map(int,input().split()) input_arr = [0]*n for i in range(n): input_arr[i] = list(map(int, input().split())) output_arr = [0]*n for i in range(n)..

Algorithm/Python 2022.06.06

[Algorithm] 백준 17362번 : 수학은 체육과목 입니다 2

문제 https://www.acmicpc.net/problem/17362 17362번: 수학은 체육과목 입니다 2 첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다. www.acmicpc.net 풀이 코드 (Python) n = input() n = int(n) rem = n % 8 if rem == 1: print(1) elif (rem == 2) or (rem == 0): print(2) elif (rem == 3) or (rem == 7): print(3) elif (rem == 4) or (rem == 6): print(4) else: print(5) 풀이 설..

Algorithm/Python 2022.05.30

[Algorithm] 백준 22351번 : 수학은 체육과목 입니다 3

문제 https://www.acmicpc.net/problem/22351 22351번: 수학은 체육과목 입니다 3 이환이의 선생님이 부른 두 정수 $A$와 $B$를 공백으로 구분하여 출력하라. 만약 가능한 답이 두 가지 이상이라면, 그중 $A$가 가장 작은 것을 출력하라. 이환이는 항상 정확한 답을 쓰기 때문에, www.acmicpc.net 풀이 (Python) from sys import stdin input = stdin.readline s = stdin.readline().strip() def solv(): if len(s) < 4: flag = True for i in range(1,len(s)): if s[0] != s[i]: flag = False break if flag: print(s, s..

Algorithm/Python 2022.05.30

[Algorithm] 백준 22354 번 : 돌 가져가기

https://www.acmicpc.net/problem/22354 22354번: 돌 가져가기 처음 위치 기준 왼쪽에서 $5,\ 6,\ 2,\ 3,\ 4,\ 7,\ 8,\ 1$번째 돌을 순서대로 가져가면 $3$번째 돌과 $5$번째 돌을 가져갈 때 점수를 얻어 $13$점이 된다. www.acmicpc.net 사실,, 해결 못했다,,, 몇시간을 풀어보고 결국 마지막에 구글링을 했는데,, 다른 사람들도 내가 푼 방식대로 한거 같은데 왜 안되는거야..!!! 일단 내가 푼 코드는 아래와 같다. N = int(input()) array = list(input()) scores = list(map(int, input().split())) result = 0 def funcMax(i, j): if i > j: retu..

Algorithm/Python 2022.05.29

[Algorithm] Python : index 함수의 시간초과 해결법, Dictionary 이용 !

백준의 좌표압축(18870)번 문제를 풀다가 시간초과로 한참 고민함 .. ㅠㅠ 문제는 생각보다 쉬웠다. 해결방법은 1. 입력받을 숫자개수(n)을 입력받고, 2. n개 만큼의 숫자를 list로 받은 후, 3. set으로 중복을 제거하고, 4. sort함수로 정렬한 후, 5. 기존 list로 입력받은 숫자 배열과 sort 함수로 정렬된 배열을 비교하여 index를 출력하면 된다고 생각했다. 근데, 여기서 시간초과가 발생한 것은 "기존 list로 입력받은 숫자 배열과 sort 함수로 정렬된 배열을 비교하여 index를 출력" 하는 부분이었다. 원하는 값의 index를 출력하는 index()함수의 시간 복잡도는 배열의 원소 하나하나를 따져야하기 때문에 O(n)의 시간복잡도를 갖는다. 따라서, 배열의 원소들을 각..

Algorithm/Python 2022.04.01