| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 백준 c++ 공부
- c#기초문법
- c#기본문법
- c#코딩기초트레이닝
- Unity
- 리그오브레전드턴제게임
- solved class 2
- 백준코테
- unity게임
- c++ 백준
- unity3dservival
- 유니티게임만들기
- 바킹독
- 유니티서바이벌게임만들기
- 백준
- 백준 C++
- unity게임만들기
- 백준코딩테스트
- 유니티공부
- C++
- c++ solved.ac
- c#코테
- c#
- 티스토리챌린지
- 오블완
- 백준 구현문제
- 유니티
- C#문법
- unity3d게임만들기
- 바킹독알고리즘
- Today
- Total
나 개발자 진짜 되냐?
코딩테스트 입문 - 세균 증식 ( pow, << ) 본문

인생은 타이밍이라고 했다.
떠난 버스는 다시 돌아오지 않는다.
한번은
버스가 떠날까봐 어쩔줄 몰랐을때가 있었다.
그때의 그 감정을 잊을수가 없다.
하루의 절반이 고민인 나인데
그때는 크게 고민할 새도 없었다.
버스가 떠날까봐
..
그래서 그 버스를 탔을땐
내려야하는데 내리지 않고 한바퀴 돌았던 기억이 있다.

이문제는 사실 그렇게 어렵지않았다.
for문으로 *2만 해주면 되는걸?!
하지만 다 풀고
다른 사람의 문제들을 보고 느꼈다.
더 쉽고 간단하게 풀 수 있는 방법이 많다는것을..
그래서 공부 겸 공유해보고자 한다.
pow
#include <cmath> 라이브러리에 들어있는 수학 함수
Power로 거듭제곱의 약자이다.
pow(밑, 지수)
로 쓰고
pow(2,3)으로하면
2의 세제곱으로 8이 나온다.
이 문제에서는 한시간에 2배씩 늘어나니까
n * pow(2,t)가 된다.

하지만! pow의 경우 double로 돌려주기 때문에
미세한 오차가 생길 수도 있다.
그래서 2의 거듭제곱을 사용할땐
쉬프트 연산자를 선호할 때도 있다.
숫자를 두배씩 키울때에는
<<
을 쓴다.
컴퓨터는 2진수여서 한칸씩 미룰때마다 2씩 늘어난다.
그래서
예를들어 3은 이진수로 11 이다.
여기다가
3 << 1
을 해주면,
한칸씩 밀리고 빈공간에는 0을 넣게 된다.
그러면 110
계산하면 6이다
3*2 한 값이랑 같다.
즉 << t해주면
t만큼 이동한거고
2의 t승만큼 곱하는 것이 된다.
그 뒤에 앞에 n을 붙이면
n * 2^t 랑 같은 식이 된다.

아!!
숫자를 반으로 나눌때엔
>>
을 쓴다.
반대인 셈!

이건 내 무난한 식..^^
pow와 <<를 배워봤다
>> << 이건 여전히 헷갈린다.
cin >> 이것도 가끔 틀리는데 말이다..ㅎㅋ
고생했다.
'프로그래머스를 풀어보아요! > C++' 카테고리의 다른 글
| 코딩테스트 연습 - 기능 개발 ( ceil , 나눗셈 ) (1) | 2026.05.28 |
|---|---|
| 코딩테스트 입문 - 저주의 숫자 3 ( 숫자 쪼개기 ) (0) | 2026.05.27 |
| 코딩테스트 입문 - 영어가 싫어요 ( find, replace ) (0) | 2026.05.25 |
| 코딩테스트 입문 - 다음에 올 숫자 ( 가운데 숫자 ) (0) | 2026.05.22 |
| 코딩테스트 입문 - 연속된 수의 합 ( 패턴 ) (0) | 2026.05.22 |