목록코딩 테스트 (121)
공부 기록장
input()과 sys.stdin.readline()의 차이점 1. input() 입력 받은 값의 개행 문자를 rstrip() 함수를 적용해 삭제하고 리턴함 parameter로 promt message 입력 가능 2. sys.stdin.readline() 개행 문자를 포함한 값을 리턴 결론적으로 말하자면, input 함수는 메세지도 출력하고, 개행 문자를 삭제하고 리턴하기 때문에 sys.stdin.readline에 비해 속도가 느리다 따라서, 코딩 테스트에서 python으로 문제를 풀 때에는 input() 보다는 sys.stdin.readline()을 활용해 입력을 받는 것이 좋다. 구체적으로 말하자면, 1-2줄 입력일 때에는 크게 차이가 없을 수 있지만 반복문을 통해 여러 줄을 입력 받는 경우에는 in..
시작에 앞서, 알아야 하는 연산량에 따른 수행 속도 1억(100,000,000 = 10^8) → 1초 1. 입출력 제한 보고 파악하기 1) 입력이 100 이하인 경우 (입력값 범위가 매우 작은 경우) 완전 탐색 백트래킹 (?) 2) 입력이 10,000 (10^4, 만) 이하인 경우 최대 O( N^2 ) 이내로 끝내야 함 ( 문제따라 O( N^2 log N ) 까지도 허용) N x N 차원 리스트를 모두 순회하는 문제 ↑ 3) 입력이 1,000,000 (10^6, 백만) 이하인 경우 최대 O( N log N ) 으로 끝내야 함 힙, 우선순위 큐 정렬 DP 위상 정렬 다익스트라 알고리즘 4) 입력이 100,000,000 (10^8, 억) 이하인 경우 최대 O( N ) 으로 끝내야 함 DP 그리디 5) 그 이..
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(number, k): numbers = number idx = 0 while idx 0: if numbers[idx] 0: idx -= 2 else: idx -= 1 idx += 1 if..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 코드 k, n = map(int, input().split()) lan = [] for _ in range(k): lan.append(int(input())) start, end = 1, max(lan) while start = n: # 랜선 길이를 늘려야 함 start = mid + 1 else: end = mid - 1 print(end) 시간 복잡도 처음에 떠올린..