https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net [B1] 백준 1546번 문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계..
https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net [B4] 백준 11720번 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 예제 입력 1 1 1 예제 출력 1 1 예제 입력 2 5 54321 예제 출력 2 15 예제 입력 3 25 7000000000000000000000000 예제 출력 3 7 예제 입력 4 11 109..
1. 배열 (Array) 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 배열의 값은 인덱스를 통해 참조할 수 있음, 선언한 자료형의 값만 저장할 수 있음 특징 - 인덱스를 사용하여 값에 바로 접근할 수 있음 - 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어려움 - 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요함 - 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없음 - 구조가 간단하므로 코딩 테스트에서 많이 이용함 2. 리스트 (List) 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 특징 - 인덱스가 없으므로 값에 접근하려면 head 포인터부터 순서대로 접근해야 함 -> 값에 접근하는 속도가 느..
코딩테스트를 진행하며 실수하기 쉬운 4가지 오류 찾아보기 1. 변수 초기화 오류 찾아보기 • 변수 초기화 로직에서 초기화를 제대로 하지 않은 경우 • 두 번째 테스트 케이스부터 통과되지 않을 때는 모든 변수가 정상적으로 초기화되고 있는지 디버깅을 이용해 확인해볼 것! 2. 반복문에서 인덱스 범위 지정 오류 찾아보기 • 반복문을 사용할 대마다 범위와 시작 인덱스를 꼼꼼하게 확인할 것 • 입력 실수를 대비하여 디버깅하는 습관을 들일 것! 3. 잘못된 변수 사용 오류 찾아보기 • 출력 부분이나 로직 안에서 사용해야 하는 변수를 다른 변수와 혼동하여 잘못 사용하는 경우 • 반복문에서 반복변수를 사용해야 하는데 기준 변수를 사용하거나 변수 이름 자체가 비슷할경우 4. 파이썬 자동 형 변환 조심하기 • / 연산 :..
• 복잡도 : 알고리즘의 성능을 나타내는 척도 • 시간 복잡도 : 특정한 크기의 입력에 대해 알고리즘의 수행 시간 분석 파이썬은 1초에 약 2000만 번 연산하는 것을 기준으로 생각함!! 1. 상수는 시간 복잡도 계산에서 제외한다. 2. 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 된다. • 공간 복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 • 복잡도가 낮을수록 좋은 알고리즘임 • 빅오 표기법 (big-O notation) : 최악일 때의 연산횟수를 나타낸 표기법 • 가장 빠르게 증가하는 항만을 나타내는 표기법 (함수의 상한만을 표기) • 연산 횟수 = 3N^3+5N^2+1000000 -> O(N^3) : 최고차항만 남기고, 계수 날리기 • 주어진 데이터의 '개수..
Last update : 2023.06.27 # 기본 입출력 빠르게 하기 • import sys • input = sys.stdin.readline : 끝에 () 넣지 말 것!! • print = sys.stout.write : 끝에 항상 print(f'{}...{}...\n') 처리 - print가 무조건 string으로 받고, 끝에는 \n 붙여야함! 정리하자면 1. input()보다는 sys.readline()을 쓰자. 2. 빈 리스트에 append()로 추가하는 것보단 입력 받을 개수 만큼 초기화된 리스트에 인덱스를 이용해서 접근해서 그 위치에 직접 입력받자. 3. 줄바꿈 할때엔 print()가 아니라 '\n', for문 마다 출력하지 말고 문자열 변수에 저장해놓고 한 번에 출력하자. # lambd..