코포 끝나기 좀 전에 어떻게 풀지 감 잡아서 결국 못 풀었다.
로직은 저 아래쪽에 있는 거 그대로 짰다.
step이 1일때 ~ 50까지 배열 전부를 확인한다.
주어진 거랑 맞으면 위치 저장하고 다음거 계속 확인한다.
만약 일치하는게 있는데 이미 위치가 저장되었다면 그건 모호하게 되므로 -1출력하고 종료..
진짜 짜면서 너무 재밌고 즐겁고 내 코드에 확신하면서 제출했는데 3번에서 틀렸다.
이 경우에서 틀렸는데
나는 이렇게 하면
1 1 1 1 2 2 2 2 도 되고
1 1 1 1 1 2 2 2 2 2 도 되니깐 틀린거로 봤다.
알고보니 이 두 경우 모두 8이 2이므로 참으로 해야했다.
그래서 step 확인하는 부분만 바꿨고 맞았다.
if (ans == 0)
ans = (n + step - 1)/step;
else
{
if (ans != (n + step - 1)/step)
{
printf("-1");
return 0;
}
}
이렇게 바꿨음
ans가 아직 값이 없다면 값을 넣어주고
이미 차있으면 넣으려는 값과 비교한다. 같으면 패스~
맞았다. 히히히히
저번 D번이랑 비슷하게 어렵지는 않은데 시간 많이 걸리는 문제인 것 같다
이건 북님 코드
나는 모든 배열을 다 확인했는데 여긴 입력으로 들어오는 m개만 확인했다.
생각해보니 그렇네ㅋㅋ m개만 확인해도 됐다.
아 그리고 확인하는 식을 저렇게 할 수도 있구나 자기보다 작은 거 개수 확인하고 자신 이후의 수 확인하고. 범위로 파악했다.
이건 좀 낯설다,, 익숙해지려면 시간 좀 걸릴듯. 지금은 저런 방식으로 확인하구나 정도만 알아놔야겠다.
'코드포스' 카테고리의 다른 글
[코드포스 Practice14] A. Cheap Travel (0) | 2020.03.13 |
---|---|
[코드포스 Practice14] 후기 (0) | 2020.03.13 |
[코드포스 Practice13] C. Save the problem! (0) | 2020.03.09 |
[코드포스 Practice13] B. SwapSort (0) | 2020.03.07 |
[코드포스 Practice13] A. Kuriyama Mirai's Stones (0) | 2020.03.07 |