본문 바로가기

전체 글

(21)
[백준 11660] 구간 합 구하기 5 파이썬 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 이차원 배열의 사각형 부분의 합을 구하는 문제입니다. 먼저 지시가 들어올 때마다 해당 사각형 부분의 인덱스를 모두 확인하여 합을 구하는 방법을 떠올릴 수 있습니다. 예시 배열의 경우, 이러한 방법으로 1,1부터 4,4 까지 전부 더하면 64임을 알 수 있습니다. 위와 같은 방법으로 제한 조건의 끝인 (1, 1)부터 (1024,1024)까지의 합을 10만번..
백준 5912 Haybale Stacking 파이썬 https://www.acmicpc.net/problem/5912 5912번: Haybale Stacking Input Details There are N=7 stacks, and FJ issues K=4 instructions. The first instruction is to add a haybale to stack 5, the second is to add haybales to stacks 2..4, etc. Output Details After Bessie is finished, the stacks have heights 0,1,2,3,3,1,0. The www.acmicpc.net Haybale을 지시 대로 쌓은 뒤에 정렬했을 때 중간 값의 높이를 찾는 문제입니다. 먼저 지시가 들어올 때마다 그..
백준 3020 개똥벌레 파이썬 https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 개똥벌레가 부딪히는 종유석과 석순의 최솟 값을 구해야 하는 문제입니다. 위에서 자라나는 종유석과 아래에서 자라나는 석순을 동시에 고려하니 문제를 풀기가 쉽지 않아서 먼저 상황을 간단하게 나타내 보았습니다. 석순은 무시하고 종유석만 자라나는 상황을 생각해 봅니다. 1, 3, 5의 높이의 석순이 있을 때 개똥벌레가 부딪히는 장애물의 개수는 다음과 같습니다. 높이가 5인 석순이 하나 자라나면 개똥벌레가 높..
컴퓨터 공학과 1학년 1학기 후기 블로그를 시작하였습니다. 어떤 글을 쓸까 하다가, 2학기를 준비하기 전 1학기를 돌아보는 글을 쓰려고 합니다. 7개 과목 총 19 학점을 수강하였고, 4.5 학점으로 마무리하였습니다. 아직 1학년이기 때문에 깊이 있는 내용에 대해서는 배우지 않았고, 교양이나 기초적인 내용에 대해서 공부하였습니다. 학술적 글쓰기와 발표, 기본 영어 발표나 읽기보다는 두 강의 모두 주로 글쓰기에 대한 강의였습니다. 여름 방학 중 교내 좋은 수업 에세이 공모전에 참가하여 수상하였는데, 이 두 강의에서 했던 글 쓰기 훈련이 많은 도움이 되었습니다. 파이썬 이해와 활용, 컴퓨터 개론, 자바 프로그래밍 1 컴퓨터 공학의 역사나 기본적인 언어 사용 방법에 대해서 배웠습니다. 자바 프로그래밍 1 수업에서는 주당 10문제 정도의 문제 ..
백준 파이썬 1083 소트 https://www.acmicpc.net/problem/1083 1083번: 소트 크기가 N인 배열 A가 있다. 배열에 있는 모든 수는 서로 다르다. 이 배열을 소트할 때, 연속된 두 개의 원소만 교환할 수 있다. 그리고, 교환은 많아봐야 S번 할 수 있다. 이때, 소트한 결과가 사전 www.acmicpc.net 사전순으로 가장 뒷서게 정렬하려면 배열의 앞부터 큰 수를 위치시키면서 내림차순으로 정렬해야 합니다. 다음과 같은 방법을 반복하면서 정렬한다면 적은 교환 횟수를 사용하면서 사전순으로 가장 뒷서게 만들 수 있습니다. 1. 교환이 가능한 수들 중 가장 큰 수를 선택한다. 2. 이미 정렬된 부분의 마지막에 위치시킨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1..