본문 바로가기

코딩 테스트/do it! 알고리즘 코딩테스트100

003 구간 합 구하기 4 첫번째 코드 구간으로 구성된 리스트를 만들어서 해당 구간에 해당 하는 값을 불러와서 더하는 계산을 하라! n, m = map(int, input().split()) number = list(map(int, input().split())) interval = [] for i in range(m): start, end = list(map(int, input().split())) interval.append((start-1, end-1)) for i in range(m): answer = sum(number[interval[i][0]:interval[i][1]+1]) print(answer) 시간 초과! 아마 계속 리스트에서 값을 가져와서 반복하는 것이 계산이 많이 필요했던 것 같다! 두번째 코드 그러면 책에.. 2024. 4. 4.
004 구간 합 구하기 5 첫번째 코드 누적합을 이용하자! 0열에 이전 행의 마지막 열의 값을 추가하여 인덱싱 문제를 해결하자! import sys input = sys.stdin.readline n, m = map(int, input().split()) number = [] interval = [] for i in range(n): number.append(list(map(int, input().split()))) for i in range(m): x1, y1, x2, y2 = map(int, input().split()) interval.append((x1-1, y1-1, x2-1, y2)) # 누적합 데이터 만들기 before_row_cumul = 0 for i in range(0, n): number[i].insert(0,.. 2024. 4. 4.
001 숫자의 합 첫번째 코드 리스트로 불러와서 더한다 n = int(input()) number = list(input()) sum = 0 for i in range(n): sum += int(number[i]) print(sum) 이때 input이 붙어있어서 어떡해야하나 했는데 split없이 불러오면 각각 따로따로 불러와진다! 그리고 문자열로 불러와지므로 더할때 숫자로 바꾸는 과정이 필요! 통과! 링크 https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Bronze/11720.%E2%80%85%EC%88%AB%EC%9E%90%EC%9D%98%E2%80%85%ED%95%A9 programmers/백준/Bronze/11720. 숫자의 합 at main · .. 2024. 4. 1.
002 평균 첫번째 코드 각각 계산해서 더해서 리스트에 저장한 후 평균을 내는 방법! n = int(input()) score = list(map(int, input().split())) m = max(score) new_score = [] for i in range(n): new = score[i]/m*100 new_score.append(new) answer = sum(new_score)/n print('{:.2f}'.format(answer)) 근데 이런 방법 말고 식을 정리해서 일일이 변환 점수를 구할 필요 없이 한 번에 변환한 점수의 평균 점수를 구하는 방법이 for 문이 들어가지 않아도 되서 용량은 더 줄일 수 있을 듯! n에 과목수 입력 score 리스트에 점수 저장 m에 score중 최대값 저장 sum.. 2024. 4. 1.
728x90