컴공 일기264
게시글 주소: https://app.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를 선물하세요.
-
지듣노 4
유이카<--오늘알았는데 ㄹㅇ 개좋음.. 음색 모임
-
눈이 너무 아프다 지금 밤이라 느끼는건데 내가 적응이 안되서 눈이 뻑뻑해서 그런건지...
-
설명도 잘해주시고 맞기도 잘 맞는듯.. 제가 극 인프피거든요
-
푸우우우ㅜ우ㅜㄱㄱ 거리며 자네 선생님 술냄새가 너무 나요.. 살려주세요 술안먹었는데 머리가 아파요
-
저는 제가 2018년에 홋카이도에 혼자 여행을 간 경험을 이야기 해드리겠습니다. I...
-
K-감은 모를만하지 아 ㅋㅋ
-
교대가면 손해임?
-
작년 이맘때쯤만해도 경북대 사범대에 올 거라고는 상상도 못했지...
-
강퇴당한건가 이제 오르비에 평화가 찾아올까요?
-
나 올해 수능전까지 그냥 질문글만 간간히 올리러 와서 모름.. 추천메인글에 공부법...
-
교대 질문 16
거의 중1부터 꿈꾸던게 초등교사였는데 요즘 교대 인식이 많이안좋더라구요.. 지금...
-
여러분도 남을 비난하고 욕하지 말고 행복하게 삽시다..
-
Kfc 딱대라 너때문에 점심도 안먹었다.. 6시에 두고보자
-
수험생들 악에받혀서 싸우는거 보면 정신건강 안좋아질거같음
-
에라이 겁나 오래걸리네 한시간영상 요약 레포트 두장.. 2시간이나 걸렸네
-
요거말임 3400원이라 ㅈㄴ비싸긴한데 맨날보는거기도하고 폴바셋이라는곳이...
-
영어발표 준비할때 한국어로 일단 대본써놓고 그걸 영작하고 있었는데 한국어 보고...
-
'HOW TO WIN Friends' 이거 주말동안 우다다 보고 인싸 쟁취하러 간다...
-
싱글벙글
-
반수러들 다들 ㅎㅇㅌ 대학물먹고 다시 수능공부하기 쉽지않을텐데 존경합니다
-
내가 아싸인이유를 깨달음 8명이서 갔는데 맨날 애들모아서 산책가고 술자리갖는...
-
귀여운 짤 겟함 16
글마다 짤로 써야지
-
우리 일학년 휴학 안돼서 재입학 걸어놓고 자퇴하는데 줄선뱌한태 얘기 해야겠지?...
-
과당 인원이 적어서 도란도란 친해지기도 좋고 남자도 군대 안가고 여자도 휴학...
-
갑자기 하드렌즈 안하고싶어질지도? 눈에 벌레들어간거같네 아 ㅋㅋㅋ
-
내일부터 다시 아침먹어야지 에잉 아침 며칠 안먹은거 아까워 죽겠네
-
얼버기 8
옷 입을게 없는걸 밤에 깨달아서 어쩔 수 없이 빨래돌리러 지금 기상.. 기숙사는...
-
지듣노 1
분위기 개미쳤음 스즈메는 그럭저럭으로 봤는데 ost가 너무 좋다 이거 부른사람...
-
진짜 재미없는게 평생의 한이다..
-
원래 교사가되고싶어서 서울교대합격하였으나 원래 하고싶었던 것은 초등교사보다...
-
가서 옆자리애랑 좀 친해졌는데 내가 준비한 대화소재 떨어지니 다시 대화가 끊김;;...
-
자전거동아리 모임 후기 13
노인네 다 됐다..
-
책사는거아니면 렙업 어케하누 댓글 오늘만 한 70개 단 거 같은데 4% 올랐네
-
아사할거같아서 빨리 잠들어야겠음 오르비하다보니 저녁도못먹어서 너무 배고프다.. 원래...
-
있습네까?
-
제 사촌이 이번에 현대차 생산직 합격했더라구요 연고 하나도 없는데 지역인재전형?...
-
자전거동아리 첫 출타 ㅋㅋㅋ 내가 자전거를 남들이랑 같이 타는 날이 올줄이야 감격스럽다..
-
뭐 C코드..? 펜타그래프? 장조? 이게 다 뭔데!! ㅠㅠ..
-
https://webtoon.카카오.com/content/%EC%9E%AC%ED%99...
-
대중교통 - 해당 노선을 끝까지 타고 가서 또 버스 타고 가야함 자차 - 출근시간에...
-
정답은 바로 실습학교 배정 순서 뽑기 였습니다. 실습학교가 먼 학교도 있고 가까운...
-
17학번이고 지방에 있는 시골 발령받았습니다 오랜만에 오르비 방문해보네요 궁금하신점...
-
점심 시간에 애들 보면 보통 메가 커피 테이크 아웃 해가지고 오던데.. 여러분들은...
-
현재 교대 23학번인데요 초등교사라는 꿈이 확고하다고 생각해서 적성 따라 갈린다는...
-
코로나 걸렸네.... 16
쒸... 코노 가면 안되는 거였는데 젠장
-
심증만으로 영정을 박진 않을거아님 멍청하게 본인이 떠들고 다니는것도 아닐텐데 뭐...
-
내가 가고 싶다는데 어떤 놈이 계속 와서 가지 말라고 함 이게 맞나 말려 주는 게 고마운 거임?
-
지난번 6학년을 졸업시키기 직전에 쓴 이후로 처음 쓰는 교직일기이다. 먼저 작년...
-
애매해지기 싫다 1
나 곧 학교 그만둘거고 반수 시작 할거에요 그냥 재수때는 몰랐는데 맞지 않는 곳을...
-
중3인데 영어 성취도 평가가 E등급 나온다고 하네요.. ㅠㅠ 솔직히E등급 받아본...
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.