https://www.acmicpc.net/problem/2875

 

2875번: 대회 or 인턴

문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 그런데 올해에는 대회에 참여하려는 학생들 중 K명을 반드시 인턴쉽 프로그램에 참여하라는 학교의 방침이 생기게 되었다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다. 백준대학교에서는 뛰어난 인재들이 많기 때문

www.acmicpc.net

- 흠... 문제 이해는 어렵지 않습니다만

 

- 일단 비율에 맞춰서 팀을 구성하고 남은 인원을 먼저 인턴쉽에 보내는 느낌(K에서 뺀다..)

 

-그리고 그럼에도 불구하고 인턴쉽에 인원을 더 보내야 할때는 팀에서 하나씩 빼는 수 밖에 없다.

 

-먼저 방향을 정하고 코드를 짰는데... 계속 틀렸습니다. 가 뜨길래 

 

-반례를 생각 해보다가 666을 했을때 2팀이 나와야 되는데 1팀이 결과로 나오는 것이였습니다.

 

-그래서 차근차근 계산해보니 코드를 잘 못 짰었다죠......

(말하자면 1명이 부족해도 2명이 부족해도 1팀이 빠져서 -1을 해놓았는데 3명이 부족할때는 K/3이 1이되면서

총 -2가 되는 코드를 짜놓고 있었던 것.....)

 

<필기>

<코드

>

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 1120  (0) 2020.02.23
백준 1541  (0) 2020.02.20
백준 10610  (0) 2020.02.10
백준 2217  (0) 2020.02.10
백준 1931  (0) 2020.02.05

https://www.acmicpc.net/problem/10610

 

10610번: 30

문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는

www.acmicpc.net

- 일단 정수론을 저도 잘하지 않았지만 아주 기본인 3의배수 이려면 각자리 숫자의 합이 3의 배수여야 한다는 것.

 

- 그리고 출력 부분에 있어서 그리디 를 통해서 큰수부터 내림 차순으로 출력하면 된다는 것

  

- 그리고 입력은 매우 큰 숫자일 수 있으므로 문자열을 이용해야 한다는 것 

(정수 형을 나타내는 기본 자료형으로는 입력을 받을 수 없다.)

 

<필기>

<코드>

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 1541  (0) 2020.02.20
백준 2875  (0) 2020.02.11
백준 2217  (0) 2020.02.10
백준 1931  (0) 2020.02.05
백준 11047  (0) 2020.02.05

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을

www.acmicpc.net

-문제를 읽어보고 예시를 한번 그려보았더니 로프가 버틸 수 있는 중량의 

 

-입력 값이 어떻게 주어지냐에 따라서 들 수 있는 최대 무게가 많이 달라질 수 있는 문제였습니다.

 

-몇개의 로프를 선택 하던 간에 그 로프들로 들 수 있는 중량의 최대 무게는

 

- (로프 중 가장적은 무게를 들수 있는 중량) * (로프의 개수) 입니다.

 

-로프  n개 선택 한다고 치면 큰 무게를 들 수 있는 로프를 두고 적은 무게를 들 수 있는 로프를 선택할 이유 가 없으므로

 

-큰것들 부터 n개를 선택 해 가면서 반복문을 1회 돌면서 그 값들을 비교하면 되는 문제 였습니다.

 

- 내림차순으로 정렬 후 앞에서 부터 로프의 개수를 하나씩 늘려가며 최대값만 저장 후 출력하였습니다.

 

<필기>

 

<코드>

 

 

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 2875  (0) 2020.02.11
백준 10610  (0) 2020.02.10
백준 1931  (0) 2020.02.05
백준 11047  (0) 2020.02.05
백준 11399  (0) 2020.02.05

https://www.acmicpc.net/problem/1931

 

1931번: 회의실배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

회의실 배정에 관한 문제이다.

 

그리디 알고리즘 에 해당하는 문제이다

 

(기준은 끝나는 시간!) 빨리 끝내고 다른 회의를 최대한 넣어야 하기 때문이다. 이는 조금만 생각해도 알수 있었다.

 

하지만 처음짠 코드에서 채점 87%정도에서 틀렸습니다 ! 를 많이 보았는데

 

내가 고려하지 않은 반례가 테스트케이스에 있다는 것이였는데... 찾는데 꽤 오래걸렸다.

 

그것은 바로 끝나는 시간만을 기준으로 정렬을 했기 때문 이였다.

 

예를 들면 시작/끝이 3/3 3/3 1/3 같은 경우 회의 3개를 진행할 수 있는 것인데

 

조건에서 파악하여 앞에 두개 3/3 3/3은 카운트 할 수 있었으나

 

3/3을 해버리면 currenttime을 3으로 바꾸어 버리기 때문에 1/3이 카운트 되지 않는다.

 

즉 끝나는 시간이 같다면 시작시간이 먼저인것을 앞에 두게 정렬을 하여야 한다.

 

<필기>

 

<코드>

 

 

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 2875  (0) 2020.02.11
백준 10610  (0) 2020.02.10
백준 2217  (0) 2020.02.10
백준 11047  (0) 2020.02.05
백준 11399  (0) 2020.02.05

동전 문제입니다.

 

처음에 입력조건을 꼼꼼하게 파악하지 않아 다른 경우의 수 를 생각 하다가

 

다시 문제를 보니 생각보다 훨씬 쉬운 문제였습니다..

 

필기노트에 기재되어 있습니다.

 

<필기>

 

<코드>

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 2875  (0) 2020.02.11
백준 10610  (0) 2020.02.10
백준 2217  (0) 2020.02.10
백준 1931  (0) 2020.02.05
백준 11399  (0) 2020.02.05

https://www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

그리디 알고리즘 기본문제 인 것 같다.

 

대기시간이 최소로 되게끔( 대기시간의 총합)

 

어쩌면 형평성 측면에서는 잘못되었다고도 할 수 있겠다..... 오직 효율성 만을.....

 

문제자체는 간단하고 쉽습니다.

 

오름차순 정렬을 시킨후 이전까지 걸렸던 시간과 그 사람이 걸리는 시간을 합을 더해서 

 

총 결과(합) 에 더해주고 그 자신이 걸리는 시간이 들어있던 배열에 그 자신을 포함한 걸린 시간을 넣어주면 되겠습니다.

 

<필기>

 

<코드>

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 2875  (0) 2020.02.11
백준 10610  (0) 2020.02.10
백준 2217  (0) 2020.02.10
백준 1931  (0) 2020.02.05
백준 11047  (0) 2020.02.05

+ Recent posts