🚩 수학, 그리디 알고리즘, 문자열, 파싱 thinking - 기준으로 쪼갠 후, 리스트의 첫번째 요소만 더하고 그 이후 요소는 다 빼면 된다. ex. 50+32-48+72-145+32-5-3 이라면 50+32-(48+72)-(145+32)-5-3 이 가장 최소가 되는 방법이다. 1. - 기준으로 쪼갠다 -> ['50+32', '48+72', '145+32', '5', '3'] 2. 첫번째 요소는 + 기준으로 쪼갠 후 더한다 -> 50+32 3. 나머지 요소는 + 기준으로 쪼갠 후 다 뺀다 -> -48-72-145-32-5-3 코드 input_lst = input().split('-') tmp = input_lst[0].split('+') res = 0 for ele in tmp: res += int(e..
🚩 자료구조, 문자열, 해시를 이용한 집합과 맵 1. 시간초과 (fail) 문제보자마자 바로 enumerate으로 index랑 value 출력했는데 시간초과가 났다. N, M = map(int, input().split()) lst = [input() for _ in range(N)] quest = [input() for _ in range(M)] for j in range(M): for i, v in enumerate(lst): # print(i, type(i), v, type(v)) # 0 Bulbasaur if quest[j] == v: print(i+1) if quest[j] == str(i+1): print(v) 혹시몰라 sys.stdin.readline() 도 추가해줬는데 이건 의미가 없었다...
🚩 트리(tree) 풀이 1 왼쪽 자식, 오른쪽 자식을 세트로 같이 더해주는 방식 T = int(input()) for tc in range(1, T+1): N, M, L = map(int, input().split()) # N:노드개수, M:리드노프개수, L:출력할 노드번호 tree = [0 for _ in range(N + 1)] for i in range(M): n, v = map(int, input().split()) tree[n] = v # 방법1 if N % 2 == 0: # 노드개수가 짝수인 경우를 위해 설정 tree.append(0) for i in range((N//2)*2, 1, -2): tree[i // 2] = tree[i] + tree[i + 1] print("#{} {}".for..
코드 ❕ 주의 ❕ 90도 회전하는 rotation 함수에서 먼저 NxN 빈 배열을 만들어줘야 한다. 그래야 회전한 값을 넣을 수 있다. T = int(input()) # 90도 회전하는 함수 def rotation(a, N): new_arr = [[0] * N for _ in range(N)] # NxN 빈 배열 먼저 만들기 for i in range(N): for j in range(N): new_arr[i][j] = a[N-1-j][i] return new_arr for tc in range(1, T+1): N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] rot_90 = rotation(arr, N) rot_180 ..
- merge 에러
- Python
- 프로그래머스
- 삼성기출
- 2018 카카오 공채
- dp
- 파이썬
- 영어끝말잇기
- 20056 마법사 상어와 파이어볼
- 17406 배열돌리기4
- 21609 상어 중학교
- merge에러
- swea
- 브루트포스
- 기지국설치
- 백준
- react
- dfs
- 보석쇼핑
- 알고리즘
- git 미러링
- 2579 계단오르기
- 삼성코테
- 20057 마법사 상어와 토네이도
- BFS
- Total
- Today
- Yesterday