하루 한번 백준풀기 - 1

아이콘 여까+x24우유깍 2024.08.02 21:50:43 출처:

 

1003번 문제.png

 오늘의 문제입니다.

뭐 어쩌구 하는데, 그냥 식에서 1이 나온 횟수랑 0이 나온 횟수만 구해주면 됩니다. (말은 이렇게 했지만 글이 개판이라 이해하는 데 3분 정도 걸림)

 

 

 

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

여기서 풀어보실 수 있습니다

 

 

이건 요걸 사용한 문제입니다

 

피보나치 수열 설명.webp.jpg

(사진은 나무위키에서 긁어왔습니다)

 

진짜임

 

 

나무위키 설명.png

(출처 : 나무위키)

 

 

 

 정확히는 저 밑에 적힌 피보나치 수열이라고 하는 문제입니다.

 

 F0=0, F1= 1,  Fn+2 = Fn+1 + Fn

 

 이런 식입니다.

 

 근데 제가 이해를 못했음으로 소개만 하고 넘어가겠습니다.

 

이번 글이 백준문제 풀기 -1인 이유가 그거임. 오늘 문제를 두번 풀 생각이라...

 

그럼 이번에는 이쯤해서 제 답을 올리고 공부해 오겠습니다.

 

1003번 시간 초과 풀이.png

 

 

 일단 프로그램을 실행부(main 함수)와 함수?부로(fibonacci함수) 나눴습니다.

 

메인 함수 안에 모든 식이 다 들어가면 보기 힘들고 고치기도 힘들다고 배워서 이렇게 나눴습니다. 

 

 

 식을 나눠뒀으니 자세하게 설명하자면, 실행부에서는 실행할 횟수 T를 입력받고 T번 동안 프로그램을 실행하는 식 입니다.

 

그리고 다시 실행할 때마다 밑의 zero와 one의 카운터를 0으로 초기화해줍니다.

 

 

 

 fibonnachi 함수에서는  말 그대로 피보나치 함수를 실행하고, 실할 할 때마다 각 출력하는 숫자(0은 zero, 1은 one)에 카운트를 하나 넣는 식입니다.

 

 카드겜의 카운터 맞습니다. 체인 할 때마다 1, 2, 3, 4 이런식으로 카운터 올라가는 그런 느낌입니다. 

 

 근데, 식을 이런식으로 짜면 n값이 높아질 수록 실행횟수가 올라가서 최적화도 안되고 뽑는데 1~5분 걸리고 그럽니다.

 

 최적화가 안됐다는 거죠.

 

 그래서 지금은 다른 사람의 풀이를 보고 있습니다... 내일쯤 최적화한거 올리게씀.

 

 

 

으아 닼던이나 하러 가야긋다