728x90

Computer Science 403

백준 알고리즘] 2399 - 거리의 차이

시간 제한 : 2초메모리 제한 : 128MB 문제수직선에 n개의 점이 찍혀 있다. 각각의 점의 x좌표가 주어졌을 때, n^2개의 모든 쌍에 대해서 거리의 차이를 더한 값을 구하는 프로그램을 작성하시오. 즉, 모든 i, j에 대해서 |x[i] - x[j]|의 합을 구하는 것이다. 입력첫째 줄에 n(1≤n≤10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각은 0 이상 1,000,000,000 이하의 정수이다. 출력첫째 줄에 답을 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n; long long *list, sum = 0; cin >> n; list = new long lon..

백준 알고리즘] 1159 - 농구 경기(COCI 2013/2014)

시간 제한 : 1초메모리 제한 : 128MB 문제상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작했다. 상근이도 농구장을 청소하면서 감독이 되기 위해 가져야할 능력을 공부해나갔다. 서당개 3년이면 풍월을 읊듯이 상근이는 점점 감독으로 한 걸음 다가가고 있었다. 어느날 그에게 지방의 한 프로농구팀을 감독할 기회가 생기게 되었다. 그는 엄청난 지도력을 보여주며 프로 리그에서 우승을 했고, 이제 국가대표팀의 감독이 되었다. 내일은 일본과 국가대표 친선 경기가 있는 날이다. 상근이는 내일 경기에 나설 선발 명단을 작성해야 한다. 국가대표팀의 감독이 된 이후에 상근이는 매우 게..

알고리즘 공부 사이트 목록

알고리즘 공부는 책으로만 해서, 실질적으로 코드를 다루어보지 못하고 대강의 개념만 알고 있는 사람들이 많은 것 같다. 그런 사람들 중 대부분이 애당초 이쪽에 흥미가 없는 사람들이겠지만, 정말 정보력이 떨어져서 흥미가 있음에도 불구하고 배운 것을 활용하지 못하는 사람들이 있을까 싶어 정리해놓은 것들을 올린다. 알고리즘 역시 기술이며, 많이 쓸수록 숙달되며 응용해서 사용할 수 있다. 또한 기술이기 때문에 타고날 수도 타고나지 않을 수도 있다. 그것을 극복하는 게 노력이겠지만... 아무튼, 필자는 개인적으로(정확히 말하자면 필자가 봤던 책에서, 주변에서의 이야기에 따르면), 알고리즘 역시 시험 공부 하듯 여러 유형의 문제를 다양하게 풀고 다루면서 실력을 늘려나가는 쪽이 맞다고 생각한다. 이를 적절히 실전에서 ..

백준 알고리즘] 2959 - 거북이(COCI 2008/2009)

시간 제한 : 1초메모리 제한 : 128MB 문제거북이는 이제 어떤 것에도 흥미를 느끼지 않는다. 그 이유는 거북이가 300년동안 살았고, 그 동안 모든 것들을 다 해보았기 때문이다. 거북이는 시간을 떼우는 무엇인가를 하려고 한다. 이번 주말에 거북이는 거북이 세계에서 매우 유명한 게임인 "가장 큰 직사각형 만들기"를 해보려고 한다. 이 게임을 시작하기 전에 거북이는 양의 정수 네 개를 머릿 속에 생각해야 한다. 한 방향으로 움직이기 시작하고 90도 회전한 뒤에 새로운 방향으로 움직인다. 이런 식으로 세 번 90도 회전을 하고, 네 번 앞으로 움직여서 선 분 네 개를 만들어야 한다. 거북이가 선분을 그릴 때 움직여야 하는 걸음의 수는 생각해 놓은 네 정수중 하나이다. 이 때, 한 정수를 각각 한 번씩 사..

백준 알고리즘] 2745 - 진법 변환

시간 제한 : 1초메모리 제한 : 128MB 문제B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 16, ..., Y: 34, Z: 35 입력첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. 출력첫째 줄에 B진법 수 N을 10진법으로 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { char arr[100]; int len, sum = 0, n; cin >>..

백준 알고리즘] 11727 - 2xn 타일링 2

시간 제한 : 1초메모리 제한 : 256MB 문제2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 소스코드 #include using namespace std; int main(void) { int n, arr[1001] = { 0,1,3 }; cin >> n; for (int i = 3; i

백준 알고리즘] 5567 - 결혼식(JOI 2010 예선 3번)

시간 제한 : 1초메모리 제한 : 128MB 문제상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 주어진다. (1 ≤ ai < bi ≤ n) ai와 bi가 친구라는 뜻이며, bi와 ai도 친구관계이다. 출력첫째 줄에 상근이의 결혼식에..

백준 알고리즘] 11399 - ATM

시간 제한 : 1초메모리 제한 : 256MB 문제인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문..

728x90