내 코인은 달나라에 가지 못했지만,
내 코드는 별로 보내려고 한다.
https://www.acmicpc.net/problem/1011
문제는 다음과 같다.
우선 알파 센투아리는 예전에 내가 와이책에서 읽었던 바로는 지구랑 제일 가까운 별이라고 한다.
이 문제를 풀려면 풀 수 있는 방법 자체는 많아서 어떤 방법으로 풀지 며칠간 고민을 해보았다.
하지만 결국 제일 먼저 떠올랐던 flag변수를 이용해서 풀기로 했다.
우선 flag변수 (flag variable) 란 상태를 기록하고 흐름을 제어하기위해 사용하는 변수를 의미한다.
이 문제를 잘 읽어보면, 처음과 마지막은 1광년만큼만 갈 수 있다.
즉, 1년마다 가는 거리를 계산해보면 1 2 ........ 2 1 이런 식으로 알파 센투아리에 닿을 수 있다.
그러니까, 결국 총 닿는 거리를 생각해보면, 1이 두번, 2가 두번, 이런식으로 계속 더해질 것이다.
그래서 여기서는 flag==1일때는 첫번재로 숫자가 더해지는 경우, flag==2는 두번째로 숫자가 더해지는 경우이다.
참고로 distSize는 총 몇번 갔는지 (ex. 1 2 2 1 이면 4겠죠?)
lightYear는 얼마만큼 더해졌는지 (앞에서 더해졌던 1과 2 등을 의미함)
그래서 계속 간 거리만큼 distance에서 빼줘서, 결국 도착을 했거나 넘어가면 작동을 멈췄다.
아주 잘 푼 것 같다!
'Computer Science > Algorithm' 카테고리의 다른 글
BOJ 10655: 마라톤 1 (0) | 2021.12.21 |
---|---|
BOJ 1935: 후위 표기식2 (Stack) (0) | 2021.12.20 |
BOJ 1260 DFS와 BFS (0) | 2021.12.17 |
DFS를 이용한 BOJ 2667 단지번호붙이기 (0) | 2021.12.13 |
BOJ 1251번: 단어 나누기 (0) | 2021.12.12 |