[코드트리챌린지] 늦었지만 09.05 ~ 09.11 공부 기록..!
목차 2023/09/05 실력 진단 결과 진단을 시행하였는데, 시뮬레이션 문제 풀이 속도가 느렸고, 개념과 문제 5개를 추천받아 풀이함. 1. 방향에 맞춰 이동 풀이 전략 - 동서남북에 대한 dx, dy를 미리 선언해준 뒤, 움직이려는 방향에 움직일 거리를 곱해 더해준다 코드트리 해설 참고 - 시간복잡도 O(n) - 공간복잡도 O(1) 풀이 코드 n = int(input()) moves = [] for _ in range(n): m,c = input().split() moves.append((m, int(c))) x, y = 0, 0 directions = {'W':0, 'S':1, 'N':2, 'E': 3} dx, dy = [-1, 0, 0, 1], [0, -1, 1, 0] # W S N E for m..
2023. 9. 12.
백준 1920번 수 찾기 문제 풀이 Python
문제 정의 수 찾기 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력: 자연수 N, N개의 정수, 자연수 M, M개의 수 출력: 존재하면 1, 존재하지 않으면 0 문제 해석 문제 자체는 m개의 아이템이 n개 아이템이 있는 배열에 포함되어 있는가? 라는 간단한 문제이나, M과 N의 크기가 커질수록 매우 많은 시간이 소요되어 선형 탐색으로 풀면 시간 초과가 발생함. 따라서 이진 탐색을 통해서 해결한다! 시간 복잡도 m개의 요소에 대해서 평균적으로 logn 번 탐색하게 되므로 O(mlogn) 으로 추정됨. 구현 def binary_search(array, elem): pl = 0 pr = len(array)-1 wh..
2023. 8. 10.