[백준/Python] 1546번: 평균
·
Algorithm/Python
1. 문제 분석핵심: 주어진 점수 중 최댓값(M)을 찾고, 모든 점수를 점수/M*100으로 변환한 뒤 새로운 평균 구하기.제한 사항: 과목 수 N은 1000 이하, 점수는 100 이하의 정수2. 접근 방식점수를 1차원 리스트에 저장합니다.최대값을 구합니다.한 과목씩 새 방법으로 점수를 구하고 평균을 구합니다.3. 내 풀이 (Code)N=int(input())scores=list(map(int,input().split()))M=max(scores)new_scores=[]for i in range(len(scores)): new_scores.append(scores[i]/M*100) print(sum(new_scores)/N)4. 코드 리뷰 및 학습 포인트✅ 더 효율적인 풀이반복문 대신 파이썬의 ..
[백준/Python] 11720번: 숫자의 합
·
Algorithm/Python
1. 문제 설명문제: N개의 숫자가 공백 없이 쓰여 있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.입력: 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100), 둘째 줄에 숫자 N개가 공백 없이 주어진다.출력: 입력으로 주어진 숫자 N개의 합을 출력한다.2. 접근 방식이 문제는 문자열의 각 자릿수를 분리하여 정수로 변환한 뒤 더하는 것이 핵심입니다.파이썬의 input()을 통해 두 번째 줄의 숫자들을 문자열 형태로 받습니다.문자열을 list()로 감싸면 각 자릿수가 하나씩 분리된 리스트가 됩니다.반복문을 통해 리스트의 각 요소를 다시 정수(int)로 형변환하며 누적 합을 구합니다.3. 내 풀이 (Code)n=input()numbers=list(input())sum=0for i in numbe..
코딩 테스트 준비하기
·
Algorithm
1. 어떤 알고리즘으로 풀어야 할까?알고리즘 선택의 기준은 시간 복잡도입니다.1-1. 시간 복잡도 표기법빅-오메가($\Omega(n)$): 최선일 때(Best Case)의 연산 횟수빅-세타($\Theta(n)$): 보통일 때(Average Case)의 연산 횟수빅-오($O(n)$): 최악일 때(Worst Case)의 연산 횟수 (코딩 테스트의 기준)1-2. 시간 복잡도 활용 가이드상수는 제외: $O(2N)$은 $O(N)$으로 취급합니다.최대 차수 기준: 가장 많이 중첩된 반복문의 수행 횟수가 전체 시간 복잡도를 결정합니다.2. 디버깅: 논리 오류를 잡는 필수 과정디버깅은 문법 오류뿐만 아니라, 결과가 예상과 다르게 나오는 논리 오류를 찾는 과정입니다.중단점(Breakpoint) 설정: 코드 실행을 멈추고..