nilllilia   5년 전

ㄴ녕하세요.

의식의 흐름대로 작성하여 많이 지저분하네요.

그치만도저히 종잡을 수가 없어서 도움요청드립니다.


djm03178   5년 전

답변자도 이 코드의 의미를 도저히 종잡을 수가 없습니다.

https://www.acmicpc.net/proble...

chogahui05   5년 전

코드 읽어보니 대충 어떤 알고리즘으로 접근하셨는진 알 거 같네요.

게시판 쭉 읽어보시고, 반례 찾아보세요.

chogahui05   5년 전

더 정확히 틀린 점을 야기해 드릴게요.

총 원소가 n개 있고, 총 합이 M이라고 한다면 ni님께서는 이렇게 수행하셨어요.

M/n이 avg이므로 avg보다 작거나 같은 친구들은 그냥 그대로 두고

avg보다 큰 건 감소를 시켜야 한다. 그렇기 때문에..

예를 들어서

4

110 120 140 149

519

라는 게 들어왔을 때 519/4 = 129.x이므로

110 120은 그대로 있고

140 149는. 어케 될 거냐면..

519 - 230 = 289네요. 평균보다 큰, 그러니까 초과분에 대해서도 균등하게 가겠다가 알고리즘인 거 같은데..

그게 최댓값이라는 보장이 있나요? 물론 최대한 균등하게 쪼개버린다면 최대치라는 보장은 있겠져..

문제는, 문제 조건에 이렇게 나왔단 겁니다.

임의의 상한을 설정해 놓고, 그것보다 크다면 임의의 상한으로 셋팅하고

그렇지 않다면 원래 값으로 셋팅한다.

님 알고리즘대로 수행하게 되면 110 120 144 144가 답이 되겠져..

그런데 실제로 그게 답일까요? 평균이 129보다 큰 부분에 대해서

144 144 이렇게 되는 건 문제 조건에도 어긋나 버립니다. 왜냐면 140에 대해서는

140만 가져가야지 뜬금없이 144만큼의 예산을 배졍해 버리기 때문이져. 


접근 방법이 완전히 잘못된 거 같아요.

chogahui05   5년 전

+

쉬운 문제를 풀어보면서 느낀 건

제가 실수가 엄청나게 많다는 거에요. 그런데 어쩌나요. 그것도 냉정하게 보면 실력이져..

나 실수 잦아요.. 대회 때 그 말 한다고 누가 알아주나요..?? 아니겠지요.

문제 조건을 잘 읽고, 그에 맞게 빠르게 접근하는 것도 실력이에요.

왜 틀렸는지 종잡으실 수 없으시다면, 냉정하게 잘라말해서, 아직 알고리즘을 공부하기에는 무립니다. 

문제를 읽고 조건을 정확하게 해석하는 연습 먼저 하세요. 그게 안 되면

아무리 문제 많이 풀어도 소용 없습니다.


(1) 이 문제가 요구하는 것이 무엇인지 (출제 의도 파악)


(2) 그래서 주어진 조건은 뭐인데..? 

(물론 수학하고 다른 건 이 사이트 같은 경우 범위 제한까지 추가된다는 겁니다.)

댓글을 작성하려면 로그인해야 합니다.