1.N 은 1 이상 10000 이하의 자연수
2.K 는 1 이상 N 이하의 자연수이며, 종류별로 적어도 한개
3.1부터 N까지는 순차적으로 나열됨
문제)
N 개의 번호(빈 칸일 경우 0)가 왼쪽부터 차례대로 공백으로 구분되어 주어진다.
0을 1부터 K까지의 숫자로 바꿨을때 가장 많은 숫자의 개수를 출력
입출력예)
9 3
0 1 2 2 0 0 3 0 0
=> 5
9 3
0 0 0 0 0 0 0 0 0
=> 7
10 4
0 0 2 0 0 0 0 0 4 0
=> 6
뭘 도와 달라는 것인지?
알고리즘인데 어떻가 짜야할지 모르겠어
그냥 문제를 풀어달라는 거면 님한테 별로 도움이 안될거 같은데...
어떤 알고리즘을 써야하는지 힌트라도.. 감이 안와서 ㅠ
알고리즘은 잘 모르겠고. 그냥 가장 단순한 풀이법은 지나가면서 해쉬맵에 일일히 카운팅올린 다음에, 카운팅이 0인것들 1개씩 올리면서 0은 카운팅 줄이고. 남은 0을 카운팅 제일 높은놈한테 몰빵하넌
몰빵하면 답이 나옴
고마어!
근데 마지막 예시는 답이 7 아님?
어 미안 문제 잘못 이해했다
순차배열인거 고려를 안했음
숫자별로 앞의 연속으로 가질수 있는 최대 숫자랑, 뒤로 연속해서 가질구 있는 최대 숫자 합해서 해쉬맵에 쌓아놓고, 최대 값 구하는게 제일 무식한 방법인거 같다
물론 이렇게 하면 o(kn) 만큼 시간복잡도가 나와서 별로 좋지는 않음
대충생각해봤을때 o(n)까지는 만들수 있을거 같은데 글로 설명하기는 긔찮다
문제가 뭔말인지 모르겠으면 심각한거임?
문제가 뭔 말인지 못 알아듣는게 정상. 한글을 모르는 사람이 작성한 문제다 싶을 정도로 심각하네;;
짤녀 우리동네에서 본거 같은데... 의학적 쌍둥이인가?