SWEA
[python] SWEA - 3752. 가능한 시험 점수
문제 해결 1. D4 | DP 2. 얻을 수 있는 최대점수를 길이로 하는 리스트를 만든다 3. 리스트안의 값은 내가 점수를 얻을 수 있으면 1, 없으면 0으로 한다 4. 점수를 하나씩 받아서 리스트를 뒤에서부터 탐색한다 (1) 1을 만나면(내가 이미 얻을 수 있는 점수 ex. lst[3] == 1 이면 3점은 이미 얻을 수 있는 점수이다.) 내가 꺼낸 점수를 더해서 그 지점을 1로 만들어준다.(ex. score == 2 이면 lst[5] = 1) 5. 리스트에서 1의 갯수를 세어주면 정답. 💨 풀이 예시] 새로 받는 점수는 2, 3, 5이다. 얻을 수 있는 점수는 리스트는 lst = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 이렇게 구성한다. (0점은 처음부터 가능하므로 0번 인덱스의 ..
[python] SWEA - 1961. 숫자 배열 회전/ 1970. 쉬운 거스름돈/ 10059. 유효기간
1. 숫자 배열 회전 문제 해결 1. 2차원 배열 다루기. D2 2. 90도로 회전시키는 것만 코드를 완성하면 나머지는 90도 돌린것을 또 돌리면 된다. 3. 이번에 푼 방법은 1행에 있는 모든 값을 임시배열에 넣어두고 거꾸로 해준다음 하나씩 쌓아준다. 🌧 이것 말고도 많은 방법이 있는 것으로 기억한다. 😶 소스 코드 T = int(input()) for tc in range(1, 1+T): n = int(input()) lst = [input().split() for _ in range(n)] # 90 도 회전 lst_90 = [] for j in range(n): tmp = [] for i in range(n): tmp.append(lst[i][j]) tmp.reverse() lst_90.append..
[python] SWEA - 1946. 간단한 압축 풀기/ 1945. 간단한 소인수분해
1. 간단한 압축 풀기 문제 해결 1. 문자열 인덱싱 하기. D2 2. 하나의 변수를 만들고 알파벳과 그 알파벳의 갯수만큼 문자열로 더해준다. 3. 너비가 10이므로 변수를 길이가 10만큼씩 잘라서 출력해준다. 🌧 2번과 3번을 동시에 할 수도 있을 것 같다😶 소스 코드 T = int(input()) for tc in range(1, 1+T): n = int(input()) document = '' for _ in range(n): word, number = input().split() document += word*int(number) print('#{}'.format(tc)) for i in range(0, len(document), 10): print(document[i:i+10]) 출처: SW E..
[python] SWEA - 1251. 하나로 / 1486. 장훈이의 높은 선반
1. 하나로 문제 해결 1. 프림 + 힙큐 2. 인접리스트를 만들어 준다. 3. 힙큐를 이용해 가중치가 가장 낮은 점을 선택하고 4. key 리스트를 최솟값으로 갱신해가며 결과를 더해준다. 🔨 인접 행렬로 하다가 몇시간 날린 것 같다. 역시 난 인접리스트를 쓰는게 편하다. 소스 코드 import heapq for tc in range(1, 1+int(input())): n = int(input()) x_location = list(map(int, input().split())) y_location = list(map(int, input().split())) tax = float(input()) # 인접 리스트 adj = {i: [] for i in range(n)} for s in range(n): fo..