목록분류 전체보기 (120)
짱이 될거야
이 문제는 Memoization 유형을 풀 때처럼 풀었다. 우선 1000의 크기를 가진 리스트를 만들고, 그 안에 수열을 미리 넣어두었다. 이후 입력받는 숫자 A, B 범위에 속하는 리스트 값들을 더해서 출력한다. A, B = map(int, input().split()) arr = [0] * 1000 cnt = 1 # 현재 숫자(1, 2, 3...) tot = 1 # 배열 인덱스 while tot 1000: break cnt += 1 print(sum(arr[A-1:B]))
1. 메모리 초과 이번 문제는 이해하기는 쉬운데, 구현 도중 시간 초과 혹은 메모리 초과 조건이 까다로웠다. 아래처럼 했을 때 메모리 초과가 나왔는데, 각 셀에 대해 bfs를 돌릴 때 조건이 visited[i][j] = 1이면서 arr[i][j] != '#'일 때로 설정해뒀기 때문에 그런 것 같다. # 메모리 초과 from collections import deque import sys input = sys.stdin.readline def bfs(si, sj): global sheep, wolf q = deque() q.append((si, sj)) n_sheep, n_wolf = 0, 0 while q: si, sj = q.popleft() if not visited[si][sj] and arr[si..
from collections import deque def bfs(v): q = deque() q.append(v) while q: v = q.popleft() if v == K: return visited[v] for i in (v-1, v+1, 2*v): if 0
예제 입력 중 0의 경우 첫 번째 시행하자마자 결과가 자기 자신이 된다. 그렇기 때문에 while문을 실행하기 전 먼저 cycle을 하나 돌려준다. 이 문제의 경우, 각 자리수를 더하는 것 자체는 어렵지 않지만 cycle을 처음 한 번 실행시켜 준다는 것과 cycle을 돌릴 때마다 직전 값을 따로 저장해둘 필요가 있다는 게 어려웠다. num = int(input()) digit_tot = 0# 각 자리수 더한 값 first_num = num# 입력값 옮겨두기 result = 10 * (num % 10)# result = 기존 값의 십의 자리 수 if num < 10: digit_tot = num else: while num: digit_tot += num % 10 num //= 10 result += (..
sentence = input() if len(sentence) >= 5 and sentence[-5:] == "driip": print("cute") else: print("not cute")
React의 경우, 시간 순서대로 코드를 진행하고 싶을 때(axios 등), async ~ await를 사용한다. Unity의 경우에는 StartCoroutine, IEumerator를 사용한다. 코드를 순서대로 실행하고 싶은 함수 앞에 `IEumerator`를 적어주고, 해당 함수를 불러올 때 StartCoroutine(함수 이름())으로 불러온다. IEumerator 함수 내에서는 코드 사이에 delay를 걸어줄 수 있는데, yield return new WaitForSeconds(시간)으로 적어주면 된다. 예시 public void Start() { StartCoroutine(Example()); } IEnumerator Example() { yield return new WaitForSeconds..