컴공 일기264
게시글 주소: https://orbi.kr/00071280638
10진수(decimal)를 2진수로 변환하는 알고리즘입니다.
주로, stack을 이용해서 구현하지요.
20을 2진수로 구현하는 방식은 다음과 같습니다.
20 / 2 = 10 …0
10 / 2 = 5 … 0
5 / 2 = 2 … 1
2 / 2 = 1 … 0
1 / 2 = 0 … 1
몫이 0이 될 때 까지 나누고, 나머지를 밑에서부터 출력하면
10100이 되지요.
이 과정을 표현하기에 적합한 자료구조가 stack입니다.
제일 먼저 2로 나눈 수는 20이지만, 20을 2로 나눈 나머지가 제일 마지막에 출력 되어야 하죠.
말하자면, 나눈 순서와 나머지를 출력하는 순서가 거꾸로 뒤집힌 상황입니다.
그러니까, 1이 제일 마지막으로 2로 나누어졌지만, 이 결과로 얻어진 나머지가 우선적으로 출력이 되죠.
다시 말해, First in - Last out을 만족하는 stack구조가 적합하다는 판단을 내릴 수 있죠.
제일 첫번째로 입력된 데이터가 마지막에 출력된다.
도출 과정을 글로 요약해보면 이렇습니다.
1. “해당 수를 나눈 몫이 0이 될 때까지 2로 나눈다”
2. “나눌 때 마다 얻게 된 나머지를 스택에 집어 넣는다”
3. “스택의 데이터가 모두 없어질 때까지 출력한다”
조금 다른 감이 없지 않아 있습니다만, 실제 알고리즘을 구현할 때
이런 식으로 간단히 의사를 정리해두는 코드를 Pseudo code(의사 코드)라고도 합니다.
개인적인 견해로, 이런 예시로 보면 알 수 있듯이 코딩은 절차적인 글쓰기입니다.
시제를 넘나드는 OOP로 넘어가면 얘기가 조금 달라지지만, 근본이 이렇죠.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
stack<char> st;
int main()
{
int num;
cin >> num;
//해당 수를 나눈 몫이 0이 될 때까지 2로 나눈다
while(num > 0)
{
int ret = num % 2;
char res = '0' + ret;
//나눌 때마다 얻게 된 나머지를 스택에 집어 넣는다
st.push(res);
num /= 2;
}
//스택의 데이터가 모두 없어질 때까지 출력한다
string result = "";
while(!st.empty())
{
result += st.top();
st.pop();
}
cout << result << endl;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
내일 9모구나 0
수미잡이니까 긴장하지 마시고 지금까지 노력한 것보다 더 잘 보시되 9모 발판 삼아서...
-
공통 삼각함수 단원이랑 미분+적분 부분만 찍먹해서 풀 건데 뭐 풀까요 6모 확통 높3~낮2
-
그래서 학과 홈페이지 들어가서 교수님 정보 찾아봤는데 서울대 학석박 삼위일체...
-
나는 공부 시간이 성적이나 학습 곡선 향상과 비례한다고 생각하지는 않음 그 이유는...
-
정시로 갈거면 아예 신경 안 써도 되나요? 주변에서 말이 다 달라가지고 머리아프네요ㅠㅠ
-
vci는 비영어권인이 어케풂? 그거때문에 iq 90찍혔는데
-
. 2
.
-
원래 국어를 잘하진 못했지만 나름 강의도 들어가면서 6모때 87점을 받았습니다....
-
다풀고 60점 나올줄 알았음
-
리트는 언어이해든 추리논증이든 시간 반나절 주고 풀어보라고 시켜도 못풀 사람은...
-
처리속도 이거 5
117나오는데 ㅋㅋㅋ 저능하네....
-
솔직히 9평 끝나고 생윤런 처도 1등급 가능임 ㄹㅇ 2
그런 당신을 위해 준비했습니다. 눈덩이 모의고사 더 비기닝! 눈덩이 모의고사...
-
2번정도 더 돌려봤는데 걍 계속 135~136 왔다갔다함
-
이감이감아 고맙다
-
그럼 된 거야
-
오늘인줄 ㄷㄷ
-
진짜 ㅈ같다 2
난 한 번만이라도 원점수 100을 받아보고 싶은데
-
친구의 부탁을 가볍게 넘기지 못했다. 에사 ‘넘기다’가 사동인지 피동인지 늘...
-
오늘 9모임?? 5
ㄹㅇ 몰랐음
-
피곤 0
피곤티비
-
Fat Finger 이슈로 몇개날려먹음ㅜㅜ
-
국어 질문 1
현장에서 너무 우당탕 읽는데 어쩔수 없음? 차이가 좀 심한거같음 어케 고침
-
보통 명당임? 이런 자리에서 보통 집중 잘 되시나요?
-
과탐도 삽질안하고 깔끔하게 푸는게 더 중요해보이는데
-
풀어봤는데 역대급으로 망했네 심지어 시간 남았는데 개많이 틀린지도 몰랐음 9모...
-
탐구는 모르겠는데 국어는 확실히 처리속도보다 정확성이 훨씬 중요함 애초에 스피드런이...
-
암것도하기싫다 2
3모 물1 푼거말고뭐안함..
-
수능잘보고 0
12월에 로젤리아 내한이 가고싶구나
-
그냥 포도주스가 됐네
-
요즘느끼는건 처리보다 올바른 판단이 더 중요하다고 생각함,,,
-
10회 대에 하나 있었던거같은데
-
아니 개짜증나 3
방금 푼 이감 하나 찍었는데 그건 찍맞하고 머리 싸매고 푼 건 다 틀림;; 9모...
-
고점찍히고계속내려감..
-
얼버기 2
학교 가기 시러
-
사람아니야
-
학교가기싫어 4
-
김지영 v단어 0
파이널 단어 좀 보려는데 인강없이 독학으로 봐도 지장없나요?...
-
지구과학1 공부하는데 빨더텅 수완 수특 했는데 n제 풀라고 하더라고요 근데 n제랑...
-
전 시즌3이 더 점수 잘나오던데 등급컷은 시즌3이 더 낮네요..
-
비상 진짜 비상 13
짝녀가 내일 점심 같이 먹자는데 ㅅㅂ 나 내일 9모 봐야 하는데 어캄 이미 교수님...
-
특히 물리 상위권분들은 올해 물리고점 개떡락할 각이니 사탐으로 가시는게 좋을것같습니다 제발
-
9월 사설 모의고사 외부생 응시 가능 학원 목록 (시대인재/메가/대성) 0
현재까지 파악한 9월 사설 모의고사 외부생 응시 가능 학원 목록입니다....
-
ㅇㅂㄱ 1
-
종강안주냐 3
다닐만큼 다녓잔하
-
심찬우 듣고싶은데 뭐 부터 해야되는지 모르겠음 국정원 독서 문학 국정원 기밀문서...
-
9모이후부터라도 제대로 수학 기출분석강의 들어보려는대ㅜ 1
대성만 있어요 누가 좋나요?ㅜ 시간이 시간인지라 볼륨이 큰 게 부담스러워서요ㅠㅠ
-
목욕탕서 '집단 마약·성관계' 북한 고교생…北, 칼 빼들었다 2
최근 북한의 고급중학교(한국 고등학교) 학생들이 목욕탕에서 집단 성관계를 하며...
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.