흠 그러니까 생각을 해봐 만약 숫자가 64442가 들어왔다고 생각해보면 숫자가 5개잖아 거기서 결승 전까지의 꼴등이 1등할 가능성이 있다면 나머지도 다 우승 가능성이 있다는 거지?? 그러면 꼴등에게 가장 큰 점수를 주고 일등에게 가장 낮은 점수를 줬다고 가정하자
ㅇㅇㅇ(14.55)2015-10-14 15:38
글면 6 4 4 4 2 에 각각 7 6 7 8 7 이되지 여기서 알수 있는건 여기서 가장 큰 수인 8을 6 4 4 4 2 각각의 숫자에 최고를 받을 수 있는 점수인 5점을 더해서 크거나 같을 수 있다면 우승할 확률이 있다는 거지
ㅇㅇㅇ(14.55)2015-10-14 15:40
그래서 만약 8보다 크거나 같으면 카운트를 올려주기만 하면 나옴
ㅇㅇㅇ(14.55)2015-10-14 15:40
내가 테스트 케이스를 너무 좁혀 본 것 같네. 형 말대로 다시 해볼게~ 근데 궁금한게 있는데 6 4 4 4 2나 6 6 4 같은 케이스가 들어 올수 있음? 예를들어 6 4 4 4 2는 5명일때니까 1라운드가 끝나면 5 4 3 2 1 차등으로 점수를 얻게 되는데, 그 다음 라운드 진행해도 저런 케이스는 못들어오지 않아? 각 라운드마다 동점자 없이 모든 사람들은 점수를 차등으로 얻게 되니까.
절루가영(61.111)2015-10-14 16:15
내가 말하고자 하는것은 따지고 보면 600 400 400 400 200 이 될수 잇다는거 결국 중복을 말하고자 하는거 각 라운드 동점이 없다곤 해도 결승전까지 점수가 쌓이다 보면 동점자는 생기잖아 그러면 문제가 발생하게 되지
ㅇㅇㅇ(14.55)2015-10-14 16:28
사실 동점자가 없다면 그냥 지금까지 가장 높은 수에 가장 낮은 점수인 1을 더한 값보다 원소들에 +N을 더해준 값이 크거나 같기만 하면 되는데 이건 펜으로 써가면서 생각해보면 알수 있음 근데 동점자가 생긴다면 문제가 발생함 그 때는 최고 높은 수만 고려해서는 안됨 그 예가 내가 말한 64442임 2+5를 더하고 6에 1을 더하면 2도 1등이 될수 있지만 맨 마지막 4는 4가 더해져서 8이됨 8을 넘지 못하므로 1등 가능성이 없다는 것임 그래서 정렬되 있는 원소에 N~1까지 내림차순으로 더해줘야됨
ㅇㅇㅇ(14.55)2015-10-14 16:31
내가 말주변이 없어서 설명을 잘 못하겠다
ㅇㅇㅇ(14.55)2015-10-14 16:31
응 내가 너무 작은 테스트 케이스만 보다보니까 전체적인거로 못본것같아 ㅋㅋ 형말대로 하니까 패스된당 감사감사~~ 어서 4번 풀어야지.. ㅋㅋㅋ
절루가영(61.111)2015-10-14 16:34
아니야 결국 테스트 케이스가 커지면 손으로 끄적일수 없는 동점자 예외처리 문제가 발생한다는거지 이해함
절루가영(61.111)2015-10-14 16:35
아니.. 왜 비주얼에서는 돌아가는데 오류나냐 아오 2번문제
ddd(202.31)2015-10-14 22:07
그냥
ddd(202.31)2015-10-14 22:07
만약 숫자가 5개 주어진다면, 오름차순으로 정렬해서 각각 숫자를 더해봐.
안드의노예(118.35)2015-10-15 00:33
예를들어 8 10 11 3 7 이 나온다면 정렬하면 3, 7, 8, 10, 11이 되겠지? 그럼 여기다 각각 5, 4, 3, 2, 1을 더하는거야
안드의노예(118.35)2015-10-15 00:33
그리고 오른쪽으로 하나씩 시프트해가면서(메커니즘은 알아서 생각해보길) 현재 인덱스가 최대값을 가진다면 우승가능성이 있는거겠지
안드의노예(118.35)2015-10-15 00:33
시발 이미 풀었네
안드의노예(118.35)2015-10-15 00:39
그렇게 하면 안풀리는게 있어 그래서 정렬 2번 해줘야되 근데 비주얼에서는 짱짱한데 왜 오류가 나냐고.. gcc 진짜 ㅠㅠ
같은 수가 2개이상일때를 고려해봐 예외 상황 나온다
664일때를 니 식에 넣으면 안될듯
근데 그게 끝이 아님
응 끝이 아니네 ㅋㅋㅋ 664잡으니까 되던 642가 안되.. 돌머리인가봐
내가 올려놨는데
어디 코드나 힌트 올려놨어?
흠 그러니까 생각을 해봐 만약 숫자가 64442가 들어왔다고 생각해보면 숫자가 5개잖아 거기서 결승 전까지의 꼴등이 1등할 가능성이 있다면 나머지도 다 우승 가능성이 있다는 거지?? 그러면 꼴등에게 가장 큰 점수를 주고 일등에게 가장 낮은 점수를 줬다고 가정하자
글면 6 4 4 4 2 에 각각 7 6 7 8 7 이되지 여기서 알수 있는건 여기서 가장 큰 수인 8을 6 4 4 4 2 각각의 숫자에 최고를 받을 수 있는 점수인 5점을 더해서 크거나 같을 수 있다면 우승할 확률이 있다는 거지
그래서 만약 8보다 크거나 같으면 카운트를 올려주기만 하면 나옴
내가 테스트 케이스를 너무 좁혀 본 것 같네. 형 말대로 다시 해볼게~ 근데 궁금한게 있는데 6 4 4 4 2나 6 6 4 같은 케이스가 들어 올수 있음? 예를들어 6 4 4 4 2는 5명일때니까 1라운드가 끝나면 5 4 3 2 1 차등으로 점수를 얻게 되는데, 그 다음 라운드 진행해도 저런 케이스는 못들어오지 않아? 각 라운드마다 동점자 없이 모든 사람들은 점수를 차등으로 얻게 되니까.
내가 말하고자 하는것은 따지고 보면 600 400 400 400 200 이 될수 잇다는거 결국 중복을 말하고자 하는거 각 라운드 동점이 없다곤 해도 결승전까지 점수가 쌓이다 보면 동점자는 생기잖아 그러면 문제가 발생하게 되지
사실 동점자가 없다면 그냥 지금까지 가장 높은 수에 가장 낮은 점수인 1을 더한 값보다 원소들에 +N을 더해준 값이 크거나 같기만 하면 되는데 이건 펜으로 써가면서 생각해보면 알수 있음 근데 동점자가 생긴다면 문제가 발생함 그 때는 최고 높은 수만 고려해서는 안됨 그 예가 내가 말한 64442임 2+5를 더하고 6에 1을 더하면 2도 1등이 될수 있지만 맨 마지막 4는 4가 더해져서 8이됨 8을 넘지 못하므로 1등 가능성이 없다는 것임 그래서 정렬되 있는 원소에 N~1까지 내림차순으로 더해줘야됨
내가 말주변이 없어서 설명을 잘 못하겠다
응 내가 너무 작은 테스트 케이스만 보다보니까 전체적인거로 못본것같아 ㅋㅋ 형말대로 하니까 패스된당 감사감사~~ 어서 4번 풀어야지.. ㅋㅋㅋ
아니야 결국 테스트 케이스가 커지면 손으로 끄적일수 없는 동점자 예외처리 문제가 발생한다는거지 이해함
아니.. 왜 비주얼에서는 돌아가는데 오류나냐 아오 2번문제
그냥
만약 숫자가 5개 주어진다면, 오름차순으로 정렬해서 각각 숫자를 더해봐.
예를들어 8 10 11 3 7 이 나온다면 정렬하면 3, 7, 8, 10, 11이 되겠지? 그럼 여기다 각각 5, 4, 3, 2, 1을 더하는거야
그리고 오른쪽으로 하나씩 시프트해가면서(메커니즘은 알아서 생각해보길) 현재 인덱스가 최대값을 가진다면 우승가능성이 있는거겠지
시발 이미 풀었네
그렇게 하면 안풀리는게 있어 그래서 정렬 2번 해줘야되 근데 비주얼에서는 짱짱한데 왜 오류가 나냐고.. gcc 진짜 ㅠㅠ
왜정렬을두번함??
제일작은값+10이 MAX일경우는 정수일때는 없음