컴공 일기264
게시글 주소: https://i9.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를 선물하세요.
-
물리 학원을 갔는데 학원이 너무 향긋했어요 이거 실력이 의심되는데 끊는게 맞겠죠? ㅠㅠ
-
대학커뮤니티 노크에서 선발한 건국대 선배가 오르비에 있는 예비건국대학생들을 돕기...
-
수시나 제대로 챙겨라 나도 07이긴 해
-
누가 뺙갤에서 카페인 먹으면 국어 안풀린다길래 아침에 커피 안먹었었는데 ㅅㅂ
-
정모 신청했다 46
특정당하지만 않으면 되 지금까지의 블러핑이 먹혀들었길
-
맞팔 구 7
가끔식 코딩한거 올리는 08임뇨
-
이래서 대학교에 골프동아리가 있는거구나 골프는 역시 좋은 운동이지 문재인이 골프를...
-
ㄹㅇㅋㅋ
-
2026 버전은 설 직후 정도에 나올 듯 합니다. 기존에 준킬러 이상 급으로 나왔던...
-
난 왜 이화여대에 가지 못하는걸까
-
덕코 복권 모집 0
다같이 만덕 모아서 복권 삽시다 쿼티 햄이 너무 부럽다
-
최초합한 학과 단톡방 들어가나요?
-
박광일쌤 비문학은 많이 별로에요? (이투스에서 들어야함) 14
문학은 다 좋다는 칭찬일색인데 비문학은 거의 정보가 없어서 박광일 커리 알 연배 분들은 다 떠났나
-
1년동안 안 씻던거 처음으로 씻을때 부모님께서 광광 우셨음 사실 더 안 씻고 싶었는데 참은거임;;
-
이감 >>>서바=상상=한수 이감 이색히들만 개 악질이고 나머지는 다 ㄱㅊ은듯
-
ㄹㅇ 딱 알았음 헥토파스칼 킥 꽂듯이 펀치라인 와다다 쏴야 했는데 뭐 어디 고장난...
-
소소하지만 필요하신 분 사용하세용! 문제 다 맛있는듯 반응 괜찮으면 다른 평가원화도 올릴게요
-
공부할땐 괜찮더니 끝나고 개씨게 와서 두달동안 개버러지처럼 살고있는데
-
블록체인, 알고리즘,등등
-
얼마나 괴랄하길래 그런거임요??? 작년에 의대생이 욕하던데
-
대학커뮤니티 노크에서 선발한 경희대 선배가 오르비에 있는 예비 경희대학생, 경희대...
-
커피 안먹으면 영단어 외울 때 졸도하는데
-
불쾌한단맛과너무나도인공적인향,
-
1월 10일, 'KAIROS II'를 업로드하고 적지 않은 감사 인사와 응원,...
-
진짜 어제일 때문에 서운라고 짜증나고 3콤보다
-
시대 기출 1
시대 기출문제집 어떤가요? 수분감 마무리하면 기츨 한 반 더하고 기출 함 더 할건데...
-
경제적 이유상 한수바탕은 못사겠고 이감도 오프 못구하고 골치 아프네요 근데 35만원...
-
봄같아
-
3주동안 롤 못했는데 오늘 너무 루틴 과재도 벅차서 리프레시 할거임 하하하
-
100% 수작업으로 만들었습니다.. 시간나실때 풀어보세용 문제 맛있는듯 반응...
-
일본으로 간다고하면 컷당하려나
-
고1 수학 질문 3
이거 왜 답이 10임? 아무리 해도 4인데
-
내가 일본을 가기 때문이지 후훗
-
아직도 안 감..
-
대구라던지 그런건 없는것임?
-
수능 2년만인데 0
쎈 수상 수1,수2,확통 다풀고 뉴분감 풀고 n제 실모 벅벅 괜찮을까? 수학 1-2 왔다갔다였음
-
다른거 안바라고 설 전에만 조기발표좀;;;
-
옆에 지구하는데 하나정도는 가져가도 모르지않을까
-
난이도 어케되나요? 기출 4점 초반 난이도 많나요?
-
고급유가 2500원임 미쳤나 물가
-
석사 1년이라는데
-
다들 너무 행복해보인다
-
사촌누나-2002년생, 재수 본인-2005년생, 재수 사촌동생-2009년생 한사람...
-
돈이 제일 정직하고 돈이 있는곳에 최고의 인재와 기술과 인프라가 몰리게 되어있음...
-
선 벡터
-
ㅈㄱㄴ
-
공부 너무 힘들다 그냥 수시 최저 없는데 쓸까 고민중..
-
자! 아무일도 없었습니다. 기억이 나신다구요? 아뇨? 아무것도 없습니다! (위이이잉)
와 이런 거 너무 좋은 거 같아요
:)
아 저도 코딩 공부하고 싶네요..나중에 원하는 학과 입학하면 이런 거 연재해보겠습니다
화이팅이에용!
님 코딩 문제 풀때 보면 바로 알고리즘짤때 뭐써야하는지 떠오르나요?
사실 난이도가 올라가면 올라갈수록, 시간이 걸리긴 합니다.
코딩테스트 한정해서 말씀드리면, 빈출 알고리즘(dp, greedy, knapsack, graph …)이라는 게 존재해서
유형을 반복적으로 접하다 보면 알 수 있죠.
생전 처음 보는 문제는 저도 버겁습니다.
답보면 맥락은 이해가 가는데 문제만 보고 이걸 떠올리는게 많이 빡세더라고요
경험 부족인 거죠. 그래서 가급적이면 유형 별 문제풀이가 도움이 될 때가 많아요.
오늘은 배낭문제, 내일은 dp, 모레는 greedy… 이런 식으로 유형 별로 반복을 하면서 연차가 쌓이면
“자기 주관”이 생기게 마련일 거예요.
자고로, 저도 그런 경험을 지금까지도 너무 많이 겪고 있는 중입니다.