Problem : Z
유형 : 분할 정복
문제 해석
- 원하는 지점
R,C에 언제 도착하는지 구하라.
문제 재해석
- 입력값은
2^N꼴이 아닌N꼴로 들어온다. 2^N은 사각형한변의 길이이다.
해결 전략
- 같은 모양이 반복 되어진다.
- 재귀적으로 이어지고,
분할 정복으로 해결 해본다.
설계, 구현
쪼개기
- 원하는 좌표가 나올때까지
절반씩쪼개나간다. - 쪼갠 기준으로 각
사분면에 존재 하는지를 확인하며 계속 진행해 나간다ex ) 3사분면에 존재 한다면, 1,2 사분면은 이미 거쳐온 것이다.
늘려 나가기
- 원하는 좌표가 나올떄까지 늘려 나간다.
- 맨 처음에는 무조건 좌표 범위 안에 있을 것이다.
각 사분면안에 존재하는지 찾아본다.- 존재 하지 않는다면, 각 사분면의 크기만큼 진행 된 것이다.
디버깅
나누기와뺴기를 잘못 사용했었다.- 좌표 위치는 크기만큼
더하거나 감소시켜가야 하는데,나누어 나가는 실수를 했다.
코드
1 | |
피드백
- 분명히 과거 풀었던 문제였음에도 불구하고, 고생을 많이 했다.
분할 정복문제에 아직 많이 약하다.분할 정복이 코딩 테스트에서는 잘 나오지 않는 유형이나,재귀적 사고력을 높이기에는 이만한 것이 없는것 같다.- 더 많은 문제를 풀어보자.