Computer Science/Algorithm

BOJ 1011: Fly me to the Alpha Centuari

무니화니 2021. 12. 20. 23:11

내 코인은 달나라에 가지 못했지만, 

내 코드는 별로 보내려고 한다.

https://www.acmicpc.net/problem/1011

 

1011번: Fly me to the Alpha Centauri

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행

www.acmicpc.net

문제는 다음과 같다.

BOJ 1011: Fly me to the Alpha Centuari

우선 알파 센투아리는 예전에 내가 와이책에서 읽었던 바로는 지구랑 제일 가까운 별이라고 한다. 

이 문제를 풀려면 풀 수 있는 방법 자체는 많아서 어떤 방법으로 풀지 며칠간 고민을 해보았다.

하지만 결국 제일 먼저 떠올랐던 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