컴공 일기264
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를 선물하세요.
-
올해 세계지리는 대승 불교 상좌부 불교 나올 때가 됐다
-
바람직한 어그로 소재가 얼마나 많나요 연고대에 제과제빵과 새로 생겼대요 같은걸로...
-
지능을 증폭하고 싶어
-
라식라섹렌삽 안하신분들 18
집에선 안경쓰고 밖에 갈때 렌즈끼시는 건가요??
-
해보고싶네
-
강의 하나가 혼자서만 런타임 140분... 3개 합치면 4시간 반 ㄷㄷㄷ
-
판단은 그 순간에서 베스트를 가져가야함. 결과를 알고 과거에 대해 논하는 것은...
-
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
-
경북대,전남대,충남대는 대구,광주,대전에 있으면서 왜 대구대,광주대,대전대가...
-
ㄱㄱㄱ
-
킁킁킁킁
-
치대 약대 한의대 분산해서 원서를 쓰든지 성 울 버리고 한 경 중 쓰던지 어차피...
-
낙변함 3
캬캬
-
생1 킬러가 어떤 느낌인지 대략 설명해주시면 감사하겠습니다. 해본 과목은 물1 화1
-
교수랑 상담해야한단 얘기도 있던데 얼마나 걸릴까요
-
자작시 4
자살방조글같아서 스스로 내용을 삭제함.
-
마음졸이면서까지 신경씀 신경쓰지마셈 수능 점수 발표나 (수시최저 신경안쓰는분들만)...
-
연세대 경영이고 국어과외 할려고요 수능이랑 평가원 교육청 모고 전부 1등급이였어요
-
하시는 방법은...
-
미스터비스트 초콜릿 이라는데 CU에서 8000원에 팔더라구요 이걸 왜 샀냐? 동생이...
-
사실 의대는 죽지 않아요 국시 못보는 니들이 죽는거죠
-
원리이해+ 천구쓰윽
-
작년동안 돈 모아서 고시원도 탈출하고 원룸잡아서 올해 공부하려고 하는데 생각보다...
-
어 어서오고
-
롤하다보면 8
탑하는 애들은 정신이 나간건지 순수한건지 모르겠음 자기들끼리 라인전중에 임티날리고...
-
제가 알기로는 T1 - 유니폼 1차는 배송까지 끝남 DK - 여기도 사이즈 이슈로...
-
내가 아는 평가원장은 한명뿐이었는데 시대가 어지러워서 한명을 더 알게되었네요
-
흠 패서가르쳐야하나
-
지하철 1번에 버스 1번만 타면 되요 환승 1번 지하철은 수인선이구요 혹시 긱사나...
-
올해 물리랑 생명 보고 백분위 각각 83 94 나온 현역입니다. 의대까지는 아니고...
-
의주빈거리는 애들이 막상 불인증나면 니들 편 들어줄거같냐고 했잖음 3
그들 입장에서는 니들도 기득권 의대생에 의대증원+수시지역인재 꿀빤 적폐세력일텐데...
-
지구과학 1
지구과학 3월부터 학원 다닐생각인데 추천좀 해주세요.. 이신혁 김진영 쌤중에 누굴 들어야할까요...
-
과외 시급 9
국어나 수학 할거 같고 본인은 서울대 공대나 메이저 약대 갈꺼 같음. 그리고 수학...
-
생각해보니 내가 할 수 있는건 공부밖에 없어서 그냥 공부나 하기로 함
-
자세한 의견이 궁금합니다 이재용 회장은 언론 정계와 연관이 많고 몇년전 마약투여...
-
예전에 1999년인가 2000년즘인가 최초로 수능만점맞은 오승은님 기억하시는지...
-
히히 신난당 나도 이제 약대생
-
ㅈ간지에 참을 수가 없는 직업명이긴 하거든요
-
2026 EBS 수능특강, 구매해야 하는 이유와 그 활용법 4
안녕하세요. 나무아카데미입니다. 어느덧 시간이 많이 지나 1월달이 되었습니다. 다들...
-
뭉까의 질문 0
플라톤의 오르토테스에 대해 읽다가 궁금해졌습니다. 의과학자는 드립인가요?...
-
훈련도감 문학론 0
훈련도감이랑 문학론만 보면 3,4등급대가 듣기엔 뭐가 더 좋을까요?
-
지방약수->건동홍 지방한->중경외시 지방치->서성한 지방의->연고
-
응……
-
점공상 예비 18->실제 예비 28 18번이면 100프로 되는데 지금은 아슬아슬하네 씁…
-
근데 지갑 너무 바리바리바리스타 하기 귀찮아서 카드 지갑으로 바꾸려는데 불편하려나
-
어른들이나 입시 잘 모르는 분들은 둘 중에 뭐가 더 좋아보일까 아무리 그래도 닥후인가?
-
6년도 수련으로 긴 시간으로 생각하지만 의료선진국인 일본 영국 미국처럼 한국...
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.