https://www.acmicpc.net/problem/1107 최솟값의 초기값은 초기 채널에서 +,-만 눌러서 목표채널로 이동하는 횟수. 이 값보다 버튼 클릭 횟수가 커지면 최솟값이 될 수 없다. 채널을 0부터 시작해서 1씩 증가시키며 현재 채널이 리모컨으로 입력 가능한지 확인한다.입력 가능하면 목표채널까지 몇번만에 갈 수 있는지 확인. 이때 리모컨 입력 횟수는 "현재 채널을 입력하고 +,-만 입력하여 목표채널로 간 횟수"이 값이 최솟값보다 작으면 최솟값을 업데이트 해준다.현재 채널을 입력하는 횟수는 채널의 자릿수 길이고 +,-만 입력하여 목표채널로 가는 횟수는 현재채널과 목표채널의 차이값이다. 채널 탐색 범위가 500,000을 초과하는 이유예를 들어 목표채널이 500,000인데 6 버튼 만 입력 가..
https://www.acmicpc.net/problem/1168 1~n 까지 배열을 만들고 인덱스를 업데이트 하면서 해당 인덱스 값을 빼오고 배열에서 제거한 후 다음 인덱스로 넘어갑니다.인덱스 업데이트 과정x번째 인덱스에서 값을 빼왔으면 다음 인덱스는 x+(m-1) 입니다. 그 이유는 x번째 인덱스를 제거한 후 이동하기 때문에 인덱스가 한칸 씩 당겨지고 +m-1만 이동해도 +m번째 인덱스에 접근하는 것과 같은 효과가 나옵니다.그런데 x+(m-1)의 값이 전체 배열의 크기를 넘어갈 수 있으므로 (x+(m-1))%(현재 배열의 크기)로 나머지만 구하여 인덱스가 범위를 넘어갈 경우 다시 0번부터 접근 가능하게 해줍니다.예를 들어 아래 표의 3번째 줄 인덱스는 4+(3-1) % 5 == 1 입니다.이 과정을 ..
next_permutation(begin, end)
for(auto : 변수명){for문 동작}
sort(begin, end, compare)