컴공 일기264
게시글 주소: https://hpi.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를 선물하세요.
-
근데 영어가 2라 메디컬을못가네
-
시대시절엔 했으려나
-
조발 나오신분들 0
셈퍼님엑셀이랑 루트공식 x공식 중에 뭐에 근접하셨나요?
-
이틀 전에 나온 N제라 물어보기도 뭐하지만 그래도 찍먹하신 분 계실 수도...
-
행정고시 1차를 붙는다 > 중앙대 편입한다 행시 1차는 헌법만 하면 지식 필요없어서...
-
메가 환불 기준 0
비닐 랩핑 된거 뜯어보니까 교재 페이지가 구겨져 있는데 이런것도 환불 해줌?
-
서울대 점공 계산기 쓸 때 1차 불합 인원은 제외하고 넣어야 하나요? 1차 불합...
-
가끔은 과탐 관련 질문글에도 내가 아는거 바탕으로라도 좀 얘기할까 싶다가도 요즘은...
-
“수능 몇 개 틀렸다”라는 말이 보통 국수영탐탐 기준인가요? 아니면 영어1등급인...
-
Semper 계산기로 돌려봤을 땐 합격가능성이 상당히 높아보이는데 저 위에...
-
26수능 드가자
-
화2는 확정이구 물리1 지구1 중에 고민중이에요…. 목표는 메이저의대입니다 ㅠㅠ...
-
이거맞음? 2
강기원: 국어는 맞는말만 고르면 90점은 나온다 문학?그거 걍 문학작품 느끼면서...
-
딱 1주전인데
-
올해 수학 점수 2
3월 68 5월 76 6월 85 7월 66 8덮 66 9월 82 10월 93 수능...
-
유대종? 전형태? 누가 제일 좋나용 전형태는 컴팩트하다고 알고 있고.. 유대종...
-
기출을 벌써 4,5회독째 하고 있어서 풀이나 함정같은걸 외워버린 문제가 너무 많아...
-
수의 국어국문 복전 ㅋㅋ
-
그런가봄
-
나를 말리지 마.
-
3모 92 5모 88 6모 92 7모 88 9모 96 10모 96 수능 92...
-
닥후인가요?
-
CC빔이라 인문을못씀 아
-
10모는 수능이랑 비슷했고 5모는 거의 탈사설급이었던 거 같은데 둘 다 좋았음 (수학)
-
언제 죽을지도 모르는 거 제동장치 고장난 열차처럼 달릴까
-
서울대 문과 1년 정원 1200명 중 로스쿨 입학인원 400명 sky로 180명...
-
헤헤 9
헤헤
-
그냥거기서 대학원가서 문학연구하고싶다
-
그동안 감사했습니다 10
눈팅을 자주한 유저입니다 여러 선생님들의 공부꿀팁 감사합니다 지인선 선생님의...
-
어...나만 있는거 아니지??
-
김동욱 0
자러감
-
CIA 신고 드립 육성으로 들으니까 ㅈㄴ 웃기네
-
아니 기본 텍스트편집기가 코딩기능까지 있다고???
-
어제도 투데이 196이었나 200도 못 찍었는데 이제 ㄹㅇ 다들 공부하러간듯
-
나를바라볼때 눈물 짓 나 요 마주친두눈이 눈물 겹 나 요 내가정말젛아하는가사
-
진짜혼자쉬려고와서 먹는중 아
-
해보고싶은데 궁금하다
-
자사고 내신대비용 공부인데 개념 전체를 보고 가는 것보다 1,4단원 심화를 더...
-
계엄이 부른 ‘호황’, 날뛰는 정치 유튜버들… 슈퍼챗 개수 대비 수익 세계 1위 [뉴스+] 6
계엄 이후, 정치 간판 유튜버 역대급 수입 평균 슈퍼챗 금액 2만원 넘고, 동시...
-
학원 학생 한테 주려고하는데... 제가 만들면 되긴하는데 글씨나 그래프 그리는게 좀...
-
경멸 라봉이
-
3덮은 아무래도 물1으로 응시해야될듯 ㅋㅋ
-
어떤분이 서울대랑 연고대 차이에 대한 글을 올렸는데 댓글이 난리가 났네요 서울대랑...
-
부모한테 치여살아서 집에도 들어가기 무서워할정도로 부모한테 트라우마 있어서 2시까지...
-
다들 행복해졌으면 좋겠어요...
-
이 가능한 세계선이 있을까..
-
프린트당.. 0
프린트당 애용하던 수험생인데 혹시 프린트당 폐업한거냐 어케 된거냐 프린트당 대신...
-
안녕하세요 7
휴르비끝냈어요
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.