본문 바로가기

백준

(5)
해커랭크 HackerRank 소개 HackerRank 해커랭크는 프로그래밍 문제풀이 사이트입니다. 주변에서 백준, 앳코더, 코드포스 등을 사용하기 때문에 해커랭크는 접해본 적이 없었는데, 이번에 듣게 된 수업에서 과제를 할 때에 해커랭크를 사용하기 때문에 찾아보았습니다. https://www.hackerrank.com/ 에서 회원가입 할 수 있습니다. 회원가입을 진행하고 이메일 인증을 하면 위와 같은 메일을 받을 수 있는데, 그 후에 문제를 풀 수 있습니다. 로그인 후에 대시보드 아래를 확인하면 위 사진처럼 여러가지 분야 중 하나를 선택해서 공부할 수 있습니다. 문제를 풀면 Hackos 라는 포인트가 쌓이는데, 이 포인트를 사용해서 실패한 테스트케이스를 확인할 수 있습니다. 테스트 케이스 비공개를 방침으로 하는 사이트도 많지만, 테스트 ..
[백준 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인 석순이 하나 자라나면 개똥벌레가 높..
백준 파이썬 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..