DO IT 알고리즘 코딩테스트_파이썬책을 공부하는 취준생으로써 해당 책의 공부 내용을 정리하며 복습하는 시간을 가지고정리한 내용이 다른 입문자들도 쉽게 이해 하도록 공유하고자 만든 페이지입니다. 모든 문제의 저작권은 관련 저작자에게 있으며 문제가 됐을 시 삭제하겠습니다. 감사합니다
1월 1일부터 교재에 나온 순서대로 평일만 5문제씩 푸는 것을 목표로 하고 있습니다. 밑에 보이는 코드들은 백준내에서 정답으로 인정된 코드입니다. 참고해서 모두 학습에 도움되길 바랍니당!
WEEK1
문제1) 백준 2750번 _ 수 정렬하기
https://www.acmicpc.net/problem/2750
2750번: 수 정렬하기
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
문제해결
파이썬 입력은 ? input() > int(input() > map(int, input()) list(map(int, input())) 이런식으로 확장해나가기
정렬함수는 ? 리스트이름.sorted()
실행코드
문제2) 백준11270_ 숫자의 합 구하기
https://www.acmicpc.net/problem/11270
11270번: Disastrous Downtime
You’re investigating what happened when one of your computer systems recently broke down. So far you’ve concluded that the system was overloaded; it looks like it couldn’t handle the hailstorm of incoming requests. Since the incident, you have had am
www.acmicpc.net
문제해결
앞에와 동일하게 개수 이력받기. split는 공백이 있을때만 사용
리스트 값 더하는 것은 for 반복문 사용
for i in range(처음, 끝값) 이런식으로 설정안해도 되고 for i in 리스트 하면 리스트 각각 요소 더해짐!!
실행코드
문제3) 백준 1546_ 평균 구하기
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
문제해결
개수와 점수 입력받기 > 최대값 구하기(max함수 사용) > 문제에서 정의한 평균값으로 새로운 리스트 생성 > 합(sum 사용)
실행코드
문제4) 백준 11659_ 구간합 구하기
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
문제해결
한줄씩 일으려면 ? import sys > sys.stdin.readline 쓰면 한줄씩 읽어짐
리스트 불러와서 구간합 배열 만들기
구간합을 구할 대상 배열 시작 인덱스. 끝 인덱스 지정
구간합[끝 인덱스] - 구간합[시작인덱스-1] 로 지정
실행코드
* 리스트를 새로운 거를 생성할 때는 범위 / 미리 값을 넣어놓지 않으면 indexerror가 발생하는 것을 알게됨.
문제5) 백준 11660_ 구간합구하기2
https://www.acmicpc.net/problem/11660
11660번: 구간 합 구하기 5
첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네
www.acmicpc.net
문제해결
앞에거와 다르기 2차원 리스트여서 한번에 푸는 것 실패. 교재 48p 내용이 제일 이해하기 쉬움
구간합을 구하려고 하면 제일 큰 직사각형에서 구간합이 포함되지 않은 여, 행을 빼고 중복하여 뺀 곳을 더하면 된다.
요 원리만 이해하면 쉽습니다.
똑같이 import sys로 패키지를 불러온 후, 리스트 크기와 질의수를 받고 리스트와 합 배열을 만들어줍니다.
이때, 리스트 합 배열 크기를 지정해야 합니다. 아니면 idnexerror뜸
앞에서 구한 것처럼 똑같이 합 배열을 구해준 후 구간 합 배열을 이어 구해주면 끝!
실행코드
이상 1월 1주차 코딩 테스트 문제풀이였습니다. 감사합니다!
전체 코드는 다운 받아 사용하시길 바랍니다
'[프로그래밍] > [프로그래밍언어]PYTHON' 카테고리의 다른 글
[Python Algorism] Week2 교재76p~92p (0) | 2024.01.21 |
---|---|
[Python Algorism] Week2 교재54p~71p (0) | 2024.01.17 |
[Python Algorism] 7. 문자열 검색 (0) | 2023.12.13 |
[Python Algorism] 6-2. 정렬 알고리즘 (1) | 2023.12.06 |
[Python Algorism] 6-1. 정렬 알고리즘 (0) | 2023.11.28 |