dlscjs8646의 등록된 링크

 dlscjs8646로 등록된 네이버 블로그 포스트 수는 136건입니다.

18108 - 1998년생인 내가 태국에서는 2541년생?!(C++) [내부링크]

https://www.acmicpc.net/problem/18108문제 : ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.불기 연도는 서기연도 + 543이므로 출력할 때 반대로 543을 빼 주면 끝이다.

18301 - Rats(C++) [내부링크]

https://www.acmicpc.net/problem/18301문제 : To celebrate the Lunar New Year of the Rat, Douglas decides to count the number of rats living in his area. It is impossible for him to find all rats, as they tend to be well hidden. However, on the first day of the new year, Douglas manages to capture n1 rats, and marks each of them with an ear tag before releasing them. On the second day of the new year, Douglas captures n2 rats, and observes that n12 of them had been marked during the first day.Douglas is asking for your help to estimate the total number of rats in his area. Looking up in your sta.......

20254 - Site Score(C++) [내부링크]

https://www.acmicpc.net/problem/20254문제 : Teams from variaous universities compete in ICPC regional contests for tickets to the ICPC World Finals. The number of tickets allocated to every regional contest may be different. The allocation method in our super region, Asia Pacific, is based on a parameter called site score.Site scores will only count teams and universities solving at least one problem, in the regional contest or its preliminary contest TOPC. In 2020, the formula for calculating the site score of the Taipei-Hsinchu regional contest is much simpler than past years. LetUR be the n.......

20492 - 세금(C++) [내부링크]

https://www.acmicpc.net/problem/20492문제 : 선린인터넷고등학교의 한 학생은 프로그래밍 대회에 참가하여 거액의 상금을 수상하는 영광을 누리게 되었다. 하지만, 이 학생이 상금 금액의 전부를 수령하게 되는 것은 아니다. 상금의 일부를 제세공과금으로 납부하고, 나머지 금액을 수령하게 된다.일반적으로, 대회에서 상금을 받으면 전체 금액의 22%를 제세공과금으로 국가에 납부하고, 나머지 금액을 수령하게 된다. 하지만, 상금의 80%를 필요 경비로 인정하게 되면, 나머지 20% 중 22%만을 제세공과금으로 납부해도 된다.대회 상금의 금액이 주어질 때, 다음 두 경우 각각에 대해 이 학생이 실제로 수령하는 금액을 구해보자.1. 전체 상금.......

15733 - 나는 누구인가(C++) [내부링크]

https://www.acmicpc.net/problem/15733 문제 : 당신은 지금 코딩을 하고있다. 그럼 당신은 어떤 사람인가.I'm Sexy를 출력만 해주면 되는 아주 간단한 문제였다.

15740 - A + B - 9(C++) [내부링크]

https://www.acmicpc.net/problem/15740문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.※ 틀린 이유- 처음에는 subtract를 안가져와서 컴파일에러 발생 (아래 메인함수에서 음수를 덧셈 할 때 뺄셈으로 처리하도록 했기 때문에 subtract가 반드시 필요했다) - 두 번째는 중간에 r의 범위에서 10000으로 바꿔주지 않아서 오류가 생김큰 수의 계산이기에 처음 만난다면 굉장히 당황할 수 있는 문제이다.하지만 이미 브론즈5에 있는 다양한 큰 수에게 여러 차례 폭행을 당한 적이 있기 때문에 무사히 통과할 수 있었다.본 코드는 아래 링크를 건 2338에서 범위만 1000에서 10000으로 바꿔준 사실상 동일한 알.......

15802 - 타노스(C++) [내부링크]

https://www.acmicpc.net/problem/15802문제 : 타노스가 당신 앞에 나타났다. 당신은 살아남을 수 있을까?1만 출력해도 성공했다고 나온다. 근데 왜 0만 나온다고 하면 틀렸다고 하는지 의문이다...?

15890 - 전국 대학생 프로그래밍 대회 동아리 연합 여름 대회 2018(C++) [내부링크]

https://www.acmicpc.net/problem/15890문제 : UCPC는 전국 대학생 프로그래밍 대회 동아리 연합(이하 전대프연)에서 진행하는 여름 대회입니다. 2011년 제1회 UCPC를 시작으로 2016년 제6회 UCPC를 성공적으로 개최하였으며, 올해 제7회 UCPC를 준비하고 있습니다. 매년 여름에 진행하는 UCPC는 ACM-ICPC를 준비하는 팀들에게 훌륭한 연습기회가 되고 있고, 프로그래밍 대회라는 하나의 공통적인 목표와 학구열을 가진 학생들에게 좋은 교류와 경쟁의 장이 되고 있습니다.UCPC 2018의 본선이 열리는 날짜를 YYYYMMDD 형식으로 출력한다.구글링 능력을 평가하는 문제였다. UCPC2018 본선이 열리는 날짜인 20180729를 출력시켜주면 끝!

15894 - 수학은 체육과목 입니다(C++) [내부링크]

https://www.acmicpc.net/problem/15894문제 : 성원이는 수학을 정말 못 하는 고등학생이다. 수학을 못하는 대신 근성과 팔 힘이 뛰어난 성원이는 수학 시험에서 수학 지식을 사용하지 않고 근성과 체력을 사용해 문제를 푼다. 지난 시험에서는 아래 사진에 나와있는 문제를 근성과 체력을 사용해 열심히 풀었지만 사진에서 볼 수 있듯이 틀려버리고 말았다!결국 이 문제는 틀려버렸지만 성원이는 여전히 자신의 체력에 강한 자신감을 갖고 있다. 어떤 어려운 문제가 나와도 이런 식으로 근성과 체력을 사용하면 다 풀 수 있으니 이 방법은 최고의 방법이라고 생각하고 있다.성원이의 친구 형석이는 근성과 체력으로 수학 문제를 푸는 것은 굉장.......

15962 - 새로운 시작(C++) [내부링크]

https://www.acmicpc.net/problem/15962문제 : 부산일과학고등학교는 태어난지 얼마 안 된 킹-갓 과학고등학교다. 우리들을 위해 응원의 한마디를 출력하자.파이팅!!을 출력만 하면 된다. 간단!

15964 - 이상한 기호(C++) [내부링크]

https://www.acmicpc.net/problem/15964문제 : 부산일과학고등학교의 효진이는 수학의 귀재이다. 어떤 문제라도 보면 1분 내에 풀어버린다는 학교의 전설이 내려올 정도였는데, 이런 킹ㅡ갓 효진에게도 고민이 생겼다. 대부분의 문제에서 반복되는 연산이 있었기 때문이다! 이 연산은 너무 길어서 종이에 풀던 효진이는 너무 고통스러워서, 자신이 새로 연산자를 만들기로 했다.연산자의 기호는 @으로, A@B = (A+B)×(A-B)으로 정의내리기로 했다.하지만, 효진이는 막상 큰 숫자가 들어오자 계산하기 너무 귀찮아졌다.효진이를 도와 정수 A, B가 주어지면 A@B를 계산하는 프로그램을 만들어주자!@라는 기호를 사용하기 위해 연산자 오버로.......

16170 - 오늘의 날짜는?(C++) [내부링크]

https://www.acmicpc.net/problem/16170문제 : 2018 SCAL-MOOKJA에 출전하기로 한 무근이와 인서는 대회 준비를 위해 같이 모여 문제를 풀기로 했다.그런데 어느 날, 일어나서 날짜를 확인해 보니 무근이와 인서의 시계가 서로 다른 날짜를 가리키고 있었다. 두 사람이 정확한 날짜에 모일 수 있도록 문제를 푸는 지금 시각이 UTC+0(세계 표준시)을 기준으로 무슨 날짜인지 출력해 주는 프로그램을 작성하자.만약 서울에서 확인한 시각이 2018년 9월 29일 오후 2시 정각이라면 UTC+0 기준의 시각은 2018년 9월 29일 오전 5시 정각이다.※ 틀린 이유- time 함수에 대한 이해가 조금 부족했다 (+ 포인터 쓰는 방법에 대해 더 익숙해질 필요가 있다.......

16394 - 홍익대학교(C++) [내부링크]

https://www.acmicpc.net/problem/16394문제 : 홍익대학교는 1946년에 개교하였다.특정 년도가 주어졌을 때, 그 해가 개교 몇 주년인지 출력하라.단, 홍익대학교는 없어지지 않는다고 가정한다.문제는 C, C++, JAVA 또는 Python3을 이용하여 해결한다.숫자를 받아서 1946을 빼주면 되는 간단한 문제. 문제 권장사항에 sync_with_stdio와 tie를 쓰는게 있어서 썼다.sync_with_stdio를 false로 해버리면 C와의 동기화가 끊어지기 때문에 C에서 쓰던 입출력 함수를 사용할 수 없다. cin.tie(NULL)로 끊어버리면 cout과의 연결이 끊어져서 속도가 조금 더 빨라진다.이 부분에 대해서는 잘 정리되어 있는 블로그가 많으니 참고하길 바란다. (아래.......

16430 - 제리와 톰(C++) [내부링크]

https://www.acmicpc.net/problem/16430문제 : 톰은 마트에서 치즈 1kg 을 사서 집으로 돌아왔습니다.그런데 톰이 한눈을 판 사이 제리가 와서 A/B kg 만큼 훔쳐갔습니다.제리가 치즈를 훔쳐 간 후 톰이 가지고 있는 치즈의 무게는 얼마인가요?문제 조건에 A와 B가 서로소라는 조건이 있었기 때문에 쉽게 풀 수 있었다. 만약 그게 아니라면 b를 a의 최대공약수로 나누는 복잡한 과정이 추가로 있었어야 할 것 같다.

17256 - 달달함이 넘쳐흘러(C++) [내부링크]

https://www.acmicpc.net/problem/17256문제 : 냉장고에서 맛있게 숙성되고 있는 마카롱은 심심한 나머지 새로운 수 체계를 생각해냈다. 마카롱은 이를 케이크 수라고 이름 붙이고, 다음과 같이 정의했다.케이크 수는 3개의 자연수 x, y, z로 이루어진 순서쌍이다. (자연수는 1 이상의 정수를 의미한다)케이크 수 a는 (a.x, a.y, a.z)와 같이 나타낼 수 있다.또한 마카롱은 케이크 수들을 비교하기 위해 등호 "="도 새로 정의했다.케이크 수 a, b에 대하여, a = b라는 것은 다음과 같다.a.x = b.x, a.y = b.y 그리고 a.z = b.z를 동시에 만족한다.아직 끝나지 않았다. 이 케이크 수는 기존의 수와 다르게 매.......

17295 - 엔드게임 스포일러(C++) [내부링크]

https://www.acmicpc.net/problem/17295문제 : 《어벤져스: 엔드게임》(영어: Avengers: Endgame)은 2019년 개봉한 미국의 슈퍼히어로 영화로, 마블 코믹스의 동명 팀을 원작으로 하고 있으며, 마블 스튜디오가 제작하고, 월트 디즈니 스튜디오스 모션 픽처스가 배급하였다. 이 영화는 2012년 영화 어벤져스와, 2015년 영화 어벤져스: 에이지 오브 울트론, 2018년 영화 어벤져스: 인피니티 워의 속편이자, 마블 시네마틱 유니버스 (MCU)의 22번째 작품에 해당한다. 앤서니 루소와 조 루소가 감독하고 크리스토퍼 마커스와 스티븐 맥필리가 공동으로 각본을 썼으며, 이전의 MCU 영화에보다도 많은 배우와 앙상블 캐스트들이 등장한다.그래서 욱제.......

17496 - 스타후르츠(C++) [내부링크]

https://www.acmicpc.net/problem/17496문제 : 진수는 회사 생활에 지쳐 회사를 그만두고 귀농을 하여 작물들을 키우며 생활하고 있습니다. 진수는 작물 중에서도 '스타후르츠' 라는 작물을 제일 좋아합니다.스타후르츠 씨앗을 심으면 자라는데 T일이 걸립니다. i일에 스타후르츠 씨앗을 심으면 i+T일에 수확할 수 있고 수확한 날에도 같은 칸에 씨앗을 또 심을 수 있습니다.진수에게는 스타후르츠 씨앗을 심을 수 있는 빈 칸이 C개 있고 한 칸에 한 개의 스타후르츠를 심을 수 있습니다.오늘은 여름 1일이고 N일까지 여름이 지속됩니다. 스타후르츠는 여름이 아닌 날에는 바로 시들어버리므로 N일이 지나면 더 이상 수확할 수 없습니.......

18096 - Арифметическая магия(C++) [내부링크]

https://www.acmicpc.net/problem/18096문제 : Дэвид Блейн попросил зрителя задумать два числа. Затем он попросил перемножить два числа, большие каждого из задуманных на единицу, вычесть из результата сначала одно задуманное число, затем другое, а затем --- их произведение, а полученный результат возвести в N-ю степень.После чего Дэвид внимательно вг.......

[무역빅데이터] ch9.5 텍스트 마이닝 실전편 [내부링크]

앞에서 배운 내용들을 활용해서 위키피디아에서 BTS를 검색한 결과를 PDF로 추출한 파일을 이용해서 wordcloud를 만들어보려고 한다.긴 말 안하고 바로 실습으로 넘어가보자.가장 먼저 해야할 일은 pdftools, stringr, wordcloud, tm을 설치하고 불러오는 일이다.pdftools는 pdf를 불러오는 패키지stringr은 문자열을 다루는 패키지wordcloud는 말 그대로 wordcloud를 그리는 패키지tm은 말뭉치를 기본으로 텍스트 데이터 전처리를 쉽게 하도록 도와주는 패키지이다.(tm은 text mining의 약자이기도 하다)위키피디아 BTS pdf파일은 아래에 업로드 해놓기도 했고,혹시 바이러스가 의심이 된다(....) 등의 이유로 직접 위키피디아 사이트에.......

[무역빅데이터] ch10 고급시각화 [내부링크]

목차0. ggplot2 패키지- R로 만들 수 있는 그래프- ggplot2 레이어 구조1. ggplot2 패키지 그래프 그리기- 산점도- 막대그래프- 선그래프- 상자 그림0. ggplot2 패키지R로 만들 수 있는 그래프는 2차원/3차원 그래프, 지도 그래프, 네트워크 그래프, 모션 차트, 인터랙티브 그래프 등 매우 다양하다.ggplot2 패키지는 쉽게 그래프를 만들 수 있또록 도와준다.R 내장 함수 이외에 다른 그래프를 만들 때 가장 많이 사용하는 패키지이기도 하다.가장 먼저 배경설정을 하고 그 뒤에 그래프 추가, 마지막으로 설정 추가를 하는 식으로 그래프를 만들 수 있다.이전 포스팅에서 options(scipen = 99) 옵션을 통해 지수 표기법으로.......

[무역빅데이터] ch11 지도시각화 [내부링크]

목차0. 지도 시각화- 지도 시각화 개념과 특징1. 단계 구분도 그리기- 미국 주별 강력 범죄율 단계 구분도- 대한민국 시도별 인구 단계 구분도- 대한민국 시도별 결핵 환자 수 단계 구분도0. 지도 시각화지도 시각화는 지도에 지역별 특성을 색깔로 표현한 단계 구분도이다. 지도 시각화를 공간 시각화라고 부르기도 한다.이 지도 시각화의 특징은 지도를 기반으로 하기 때문에 위치, 영역, 시간과 공간에 따른 차이 및 변화에 대한 것을 다룬다는 것이다.위도 및 경도에 따라 지도에 버블로 표현하고, 영역을 구분하기 위해 색상을 다르게 표현하고, 시공간 구분을 위해 레이어 형태로 추가하여 시각화를 하기도 한다.시각화를 하는.......

13277 - 큰 수 곱셈(C++) [내부링크]

https://www.acmicpc.net/problem/13277문제 : 두 정수 A와 B가 주어졌을 때, 두 수의 곱을 출력하는 프로그램을 작성하시오.※ 틀린 이유- 몰라서..굉장히 난해했다. 이전에 큰 수의 곱셈을 이중 for문의 알고리즘으로 구한 적이 있어서 그걸 그대로 가져다 썼더니 시간초과가 났다. 당황해서 이것저것 검색해서 찾아보니 내가 알고 있던 기존 지식으로 풀기에는 역부족인 문제였다. (브론즈 5는 무슨..) 그래서 검색해가며 코드를 찾고 내 방식대로 바꾸고 응용해서 만들었다. 기본적인 틀은 아래 블로그와 기타 정답을 맞추신 분들의 코드이다. (완성에 무려 4일이 걸렸다.)카라추바, 혹은 FFT 방식을 사용해야 시간초과가 나지 않고 풀 수.......

14645 - 와이버스 부릉부릉(C++) [내부링크]

https://www.acmicpc.net/problem/14645문제 : 버스 운전수 비와이 씨가 운전하는 버스(verse아님 ㅎ)는 N개의 정거장을 거친 후 종착역에 도착한다. 각 정거장은 내릴 인원수와 올라탈 인원수가 정해져 있다. 종착역에 도착하면 버스에 타고 있던 모든 사람이 내린다.참으로 허무한 문제. cout << "비와이" 만 있으면 사실 위의 내용들이 전혀 필요가 없는 문제였다.나중에 이런 비슷한 문제 나왔을 때 그나마 의미가 있을만한(?) 코드로 조금 짜 보았다.

14652 - 나는 행복합니다~(C++) [내부링크]

https://www.acmicpc.net/problem/14652문제 : “나는 행복합니다~ 한화라서 행복합니다~”행복한 이 노래 가사! 그렇다. 욱제는 한화 이글스의 열렬한 팬이다. 욱제는 여름방학을 맞아 치킨과 맥주를 챙겨 야구장을 방문했다! 하지만 이게 웬걸? 치맥에 정신이 팔린 욱제는 그만 자신의 관중석 위치가 담긴 티켓을 잃어버리고 말았다. 욱제가 유일하게 기억하는 것이라고는 자신의 관중석 번호 K뿐이다.당신은 한화 이글스의 감독이다. 열혈 팬인 욱제의 방문에 깊은 감동을 받은 당신은 욱제가 잃어버린 자리를 찾아주려고 한다. 오늘 경기가 펼쳐지는 잠실구장은 세로 길이가 N, 가로 길이가 M인 N*M 크기의 관중석을 가지고 있다. 관중석의 왼.......

14928 - 큰 수 (BIG) ( C++) [내부링크]

https://www.acmicpc.net/problem/14928문제 : 제연이는 그의 생일(2000년 3월 3일)을 기념해 자신이 가장 좋아하는 수를 20000303으로 나눈 나머지를 구해 그 수만큼 잠을 자기로 했다. 제연이가 얼마나 잠을 잘 수 있을지 구하자.※ 틀린 이유- ans = (ans * 10 + (a[i] - '0')) % 20000303; 을 했어야 했는데 등호가 아닌 +=를 써서 틀렸다.처음엔 굉장히 헷갈렸지만, 몫이 아니라 나머지이기 때문에 굳이 큰 수 나눗셈을 복잡하게 구현할 필요가 없었다.(일반적인 이중 for문으로 계산하기엔 안그래도 자릿수가 100만자리라 쉽지 않았을 것이다)우리가 일반적으로 하는 나눗셈을 통해 나머지를 구하는 과정을 보면an.......

15439 - Vera and Outfits(C++) [내부링크]

https://www.acmicpc.net/problem/15439문제 : Vera owns N tops and N pants. The i-th top and i-th pants have colour i, for 1 ≤ i ≤ N, where all N colours are different from each other.An outfit consists of one top and one pants. Vera likes outfits where the top and pants are not the same colour.How many different outfits does she like?(번역 : 옷과 바지의 색깔의 수를 입력값으로 받는다. 같은 색의 옷과 바지는 입을 수 없다고 할 때 옷과 바지의 조합의 수를 구하시오.) 옷 하나를 먼저 고르고(a), 그 옷과 같은 색을 제외한 바지를 고르면 된다.(a-1)a와 a-1를 곱하고 그 수를 출력하면 된다.

15641 - SUPER SUPER BINARY SEARCH DELUXE 2.5 (Text) [내부링크]

https://www.acmicpc.net/problem/15641문제 : 1 이상 100 이하의 자연수를 출력한다. 단, 하나의 자연수만 정답이다. 정답은 맞은 사람이 나타날 때마다 바뀐다.정답보다 작은 수를 출력하면 33% 부근에서 "틀렸습니다"를 받는다.정답보다 큰 수를 출력하면 66% 부근에서 "틀렸습니다"를 받는다.... 무의식적으로 C++ 기본코드쳤다가 뭔가 이상함을 느끼고 언어를 보니 Text?수정도 안된다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ어쩔 수 없이 소주병따개게임을 강제로 시작했다.처음에는 33이 정답보다 낮은 수를 출력해서인걸 반대로 해석해서 25를 넣었다가 괜히 1번 더 틀렸다.50 - 25 - 75 - 62 - 56 순으로 넣어서 5트만에 통.......

15727 - 조별과제를 하려는데 조장이 사라졌다(C++) [내부링크]

https://www.acmicpc.net/problem/15727문제 : 3학년 1학기를 재학 중인 성우는 ‘빨간눈 초파리의 뒷다리 털의 개수와 파인애플 껍질의 이해’라는 과목을 수강 중이다. 기말고사를 맞이하여 교수님은 수강생들에게 조별과제를 내주었고, 그 내용은 다음과 같다.중간고사 이전에 배운 빨간눈 초파리의 뒷다리 털의 개수를 구하는 방법을 이용하여, 파인애플 껍질의 두께를 구하는 공식을 과학적인 근거와 함께 A4용지 10장 이상으로 제출하시오. [30%]하지만 성우의 조 조장인 민건은 과제 내용을 듣자마자 집으로 도망쳐 버렸고, 성우는 민건이를 찾기 위해 떠난다. 성우는 1분에 1에서 5까지의 거리를 이동할 수 있다. 성우가 있는 곳으로부터.......

[Level 2][해시] 위장 (C++) [내부링크]

이번 문제는 Benelux Algorithm Programming Contest 2013에 출제되었던 해시 문제이다. (당연히 해시가 아닌 다른 방법으로 풀어도 상관은 없다)출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challengeshttps://programmers.co.kr/learn/courses/30/lessons/42578문제 : 스파이들은 매일 다른 옷을 조합하여 자신을 위장합니다.예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다.스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조.......

[Level 3] [해시] 베스트앨범 (C++) [내부링크]

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challengeshttps://programmers.co.kr/learn/courses/30/lessons/42579문제 : 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다.2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다.3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스.......

[C++ STL] STL이란? [내부링크]

얼마 전에 map이라는 STL에 대해서 포스팅을 했었죠. 그런데 문득 그런 생각이 들었습니다.STL이 정확히 뭔지도 모르는데 map을 설명하는 게 맞는 것인가?그래서 이번 포스팅에서는 STL에 대해서 간략하게 알아보려고 합니다.목차0. STL이란? - 컨테이너 - 반복자 (iterator) - 알고리즘1. STL의 특징0. STL이란?STL(Standard Template Library)는 표준 템플릿 라이브러리의 약자입니다.엄밀하게 말하면 C++에서 이렇게 이미 만들어진 템플릿을 이용하기 위해 불러와서 사용하는 것은 C++ Standard Library라고 하는 것이 맞지만, 예전부터 STL이라고 불러왔기 때문에 지금도 STL이라고 많이들 부르곤 합니다. (CSL이라고 부르기는 좀.......

11654 - 아스키 코드(C++) [내부링크]

https://www.acmicpc.net/problem/11654문제 : 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.※ 틀린 이유- atoi를 쓰려다가.. atoi는 char*을 int로 변환시켜주는데, 이 때 아스키 코드가 아니라 숫자 그대로 변환시켜준다. (char* a = 2021 라면, 이걸 int 형으로 바꿔도 그대로 숫자 형태의 2021이 된다. 아스키코드 변환이 되는게 아니다!)형변환을 할 때는 괄호 안에 원하는 형태를 넣으면 된다. 이거 분명 자료구조 과제할 때 char을 char*로 변환할 때 썼던 것 같은데 금방 잊어버렸다. 역시 사람은 쓰지 않으면 잊어버리는 동물...

11942 - 고려대는 사랑입니다(C++) [내부링크]

https://www.acmicpc.net/problem/11942문제 : 첫째 줄에 "고려대학교"를 출력하세요.설명할 게 없다. 이걸 모르겠다면 C++을 처음부터 다시 공부할 필요가 있다.

[무역빅데이터] ch6 데이터 요약 및 집계 [내부링크]

목차0. 벡터(Vector)의 요약과 집계- 데이터 요약- 요인 변수 요약1. 데이터 프레임(Data Frame)의 요약과 집계- 데이터 프레임의 구조 및 요약- 데이터 프레임의 집계- 리스트의 요약- 요인 변수의 집계0. 벡터의 요약과 집계이전 포스팅에서 보았듯이 산점도, 그래프 등 시각화를 해서 데이터의 분포를 확인할 수 있었다.https://blog.naver.com/dlscjs8646/222195571144하지만 이렇게 시각화를 해도 부족한 부분이 있을 수 있다.(더 자세한 통계를 알기 위해서!!)이런 경우에는 추가적으로 기술 통계량을 구해야 한다.기술 통계량은 mean() - 평균, sd() - 표준편차, max() - 최대값 등 함수를 통해서 확인할 수도 있고,summary().......

[무역빅데이터] ch7 사용자정의함수 / 조건문과 반복문 [내부링크]

목차0. 사용자 정의 함수- 함수 정의- 함수 작성 방법- 간단한 함수 작성 예- 익명 함수1. 조건문- 단순 조건문 - is.even()- 조건문의 중첩- 다중 선택 조건문2. 반복문- 시행 횟수가 정해진 반복문- for 반복문- sum.num()0. 사용자 정의 함수R에서의 모든 연산은 함수를 호출해서 실행하게 된다.함수는 보통 하나 이상의 입력값과 함께 실행될 수 있고, 실행 결과로 하나의 결과값(객체)를 반환하게 된다.함수 연산은 자신이 입력한 입력값에만 영향을 받기 때문에 숨겨진 입출력 값에 대한 부작용을 줄일 수 있다.(이걸 순수함수라고 부른다)파이썬, C++, 자바처럼 R에서도 함수를 사용자가 만들 수 있고, 쉽게 생성하고 수.......

[무역빅데이터] ch8 상관분석과 단순회귀분석 [내부링크]

목차0. 상관분석- 상관계수- 상관분석 시각화1. 회귀분석- 회귀계수- 회귀분석의 기본가정- 회귀분석절차-기본가정 충족- t검정, f검정- 결정계수(R^2)- 회귀분석 결과0. 상관분석상관분석은 두 변수가 서로 얼마나 밀접하게 관련되어 있는지, 한 변수가 커지거나 작아질 때 다른 변수가 어떻게 바뀌는 지에 대해서 살펴보는 방법이다.두 변수의 관계가 선형임을 전제로 하고, 독립변수와 종속변수의 구분 없이 두 변수가 어떤 연관관계를 가지고 있는 지에 대해서만 알 수 있다.두 변수간의 인과관계를 설명하는 것은 아니다. 인과관계를 알고 싶다면 회귀분석을 해야 한다.상관분석을 통해 평균과 표준편차가 동일하더라도 두 변수.......

[무역빅데이터] ch9 텍스트 마이닝 [내부링크]

목차0. 텍스트 마이닝- 텍스트 마이닝이란?- 텍스트 마이닝의 원리1. 텍스트 분석을 위한 기초적 R 함수2. 텍스트 분석을 위한 stringr 패키지- stringr 패키지- str_extract()와 str_extract_all()- str_replace()와 str_replace_all()- str_split()과 str_split_fixed()- str_count()- str_sub()- str_pub()- str_length()- str_c()3. 텍스트 분석에서 유용한 정규표현0. 텍스트 마이닝텍스트 마이닝은 문자로 된 데이터에서 가치 있는 정보를 얻어내는 기법을 말한다.보통 텍스트마이닝은 문장을 구성하는 어절들이 어떤 품사로 되어있는지를 파악하는 형태소 분석을 먼저 하게 된다.먼저 품사를 파악하고 그 이후 각 품사를 추.......

[C++ STL] map [내부링크]

무지무지 많은 STL들을 2020년이 끝나가는 지금에 와서야 마주하는 나..비전공생이 코테 준비를 하기 위해서 전공생보다 더 미리미리 해야하는데 부지런하지 못해 이제와서야 시작한다....앞으로도 STL을 정리할텐데, 이 부분은 다른 사람들에게 알려준다는 느낌으로 포스팅 하려고 한다. (따라서 존칭을 쓸 예정이다) 마치 아무것도 모르는 나한테 설명해주는 느낌으로 하면 뭔가 기억에 더 잘 남지 않을까 싶어서..Map오늘은 자료구조시간에 배우지 못했던 map이라는 구조를 가진 STL을 살펴보려고 합니다.실제로는 vector만큼이나 많이 쓰인다고 하는데, 저는 프로그래머스 문제를 풀면서 처음 알게 되었기 때문에 다소 부정확한 부.......

[무역빅데이터] ch0 빅데이터 분석 [내부링크]

0. 빅데이터가 뭔데?요즘 가장 핫한 장르가 바로 빅데이터이다. 거의 모든 대학생들이 못해도 한번은 들어보지 않았을까 하는 생각이 든다. 하지만 빅데이터가 무엇인지 정확하게 개념을 설명할 수 있는 사람은 많지 않다. 그렇기 때문에 가장 먼저 해야 할 일은 빅데이터란 무엇인지에 대해 파악하는 것이 되야 할 것이다.McKinsey Global Institute(2011)에 따르면 빅데이터는"일반적인 데이터베이스 관리 시스템(DBMS:Data Base Management System)으로 저장, 관리, 분석할 수 있는 범위를 초과하는 대규모 데이터"이다.보다 간단히 말하면 새로운 데이터 소스에서 수집된 보다 복잡하고 거대한 데이터세트이다. 우리가 생각.......

[무역빅데이터] ch1 R프로그래밍? [내부링크]

이번 포스팅과 다음 포스팅에서는 R의 기초적인 문법과 데이터를 입력하는 방법에 대해서 알아보려고 한다.기본적으로 R studio 1.3버전을 사용하므로 참고하기 바란다.또한 네이버 소스코드가 따로 언어를 설정해 주는 기능이 없어서 주석이 #이 아니라 //가 베이스인 것 같아 부득이하게 결과값과 주석을 // # 형태로 표시했음을 미리 안내한다.https://rstudio.com/0. 데이터 입력하기벡터(vector)는 R에서 가장 기초적인 데이터 구조이며, 모든 데이터는 벡터 형태로 저장이 된다.벡터라는 말에 고등학교 이과 과정의 기하와 벡터...를 생각하며 어렵겠다라고 생각할 수 있는데 전혀 무서워 할 필요가 없다.앞서 이 포스팅의 제목이.......

[무역빅데이터] ch2 데이터 관리 [내부링크]

목차0. 데이터 열기- 정형 데이터 구조1. 데이터 탐색 - 비교 연산자 / 논리 연산자 - 행과 열로 구성된 데이터의 탐색 - 데이터 유형 확인 - Factor, 명목 변수, 서열 변수 - factor와 character형태의 차이2. 데이터 저장 - CSV 파일 - Rdata 파일0. 데이터 열기일반적으로 통계 분석에 쓰이는 데이터들은 아래 그림과 같은 정형적 구조를 가지고 있다.보통 각 열은 변수를 나타내고(ID, NAME, GPA, AGE)각 행은 각각의 대상을 나타낸다. (2012000인 사람의 NAME, GPA, AGE 등등..)그리고 이런 파일들은 csv형태, 혹은 xlsx등 엑셀 파일과 같은 형식으로 저장되어 있는 것이 일반적이다.아래는 UN comtrade 공개 데이터를 가공 편집한 자.......

[무역빅데이터] ch3 여러 가지 데이터 유형 [내부링크]

목차0. 행렬- 데이터 저장 구조- 행렬의 개념- 행렬의 생성- 벡터의 결합을 통한 행렬 생성- 행렬과 이름1. 데이터 프레임과 리스트- 데이터 프레임- 리스트- 데이터 프레임 vs 리스트- 데이터 저장 구조의 비교0. 행렬행렬은 행과 열로 구성된 2차원 데이터이고, 모든 데이터 값이 동일한 유형으로 되어있다.위와 같은 행렬을 3x2 혹은 3 by 2 행렬이라고 한다.특히 R에서의 행렬의 원소는 열 우선 순서 저장 원칙에 따라 벡터 형식으로 저장된다.(첫 번째 열의 값을 모두 저장하고 다음으로 두 번째 열의 값을 입력하는 등 열 순서로 값을 저장하는 방식이다)이런 행렬은 matrix() 함수를 사용하여 만들 수 있다.matrix(데이터 값, 행.......

[무역빅데이터] ch4 데이터 수정 및 결합 [내부링크]

목차0. 파생변수 생성- 파생 변수의 개념- 연산을 통한 파생 변수의 생성- 연속형 데이터의 변환- 파생변수의 추가1. dplyr 패키지- 패키지 소개 및 주요 기능0. 파생변수 생성파생변수란 연산 작업 등을 통해 보유한 데이터에서 새로운 결과를 얻고 그 결과로 새롭게 생성된 변수를 파생변수라고 한다.분석 종류에 따라 숫자로 기록된 월 카드 사용 금액을 적음, 보통, 많음으로 구분된 서열 변수로 변환이 필요할 수 있다. 아니면 어떤 매장의 2017년 방문자 수가 월별로 기록되어 있다면 이를 모두 더해서 연간 방문자수 혹은 월 평균 방문자수로 바꿀 수 있을 것이다.위와 같은 분석을 위해 R에서는 기본적인 산술 연산자를 이용해.......

[무역빅데이터] ch5 데이터 시각화 [내부링크]

목차0. 데이터 시각화- 막대기둥그림표- 색상의 사용1. 막대그래프- names.arg- options- horiz- col- beside- legend2. 원형그래프- labels3. 산점도- pch- abline0. 데이터 시각화 R에는 데이터 시각화를 위해서 다양한 함수가 기본적으로 내장되어 있고, 외부 패키지 설치를 통해 추가적으로 기능을 확장시킬 수 있다.R의 기본 그래픽 체계에서는 다음 중 하나 이상의 요소들을 조합, 활용하여 그래프를 만든다.- 고급 그래픽 함수 : 한 번의 함수 사용으로 하나의 그래프를 완성할 수 있는 함수- 저급 그래픽 함수 : 하나의 그래프에서 특정한 요소를 추가하거나 편집하는 데 사용할 수 있는 함수- 그래픽 인자 : 그래프 구.......

11382 - 꼬마 정민 (C++) [내부링크]

https://www.acmicpc.net/problem/11382문제 : 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!※ 틀린 이유- c를 써야하는데 C를 써서....기존의 int형태의 숫자는 -2,147,483,648~2,147,483,647 까지의 수만 담을 수 있다. 그렇기 떄문에 문제 조건에 있는 10^12까지의 수를 모두 담을 수 없다.이를 해결하기 위해서는 long long 형태를 사용하면 된다.long long 형태를 사용하면 -9,223,372,036,854,775,808~9,223,372,036,854,775,807 까지의 수를 담을 수 있다. 즉 19자리 정수까지 담을 수 있는 것이다. 이것만 쓰면 clear!※ double은 소수점 형태일 때 사용하는 것(부동소수점 형태로 지수.......

[운영체제] ch11 Implementing File System [내부링크]

왜 ch10이 없냐는 의문이 있을 수 있는데..사용자 관점에서의 파일시스템이기 때문에 크게 중요하지 않아서 넘어간다.기회가 된다면 나중에 한번 작성해 보도록 해야겠다.Implementing File System은 개발자 관점에서의 파일시스템이다.파일 시스템 구조에는 on-disk(어떻게 저장되어 있는지)와 In-memory(메모리에 올려서 어떻게 사용하는지)의 두 가지 구조가 있는데, on-disk가 훨씬 중요하기 때문에 먼저 보도록 하겠다.위 사진은 On-disk Structure을 나타낸 사진이다. (UNIX 기준이다)하드디스크가 어떻게 관리되는 지를 잘 보여준다.book block은 운영체제가 깔려있는 영역이고super block은 파일시스템, 메타데이터가 저장하고 있.......

[운영체제] ch12 Secondary-Storage Architecture [내부링크]

이번에는 디스크는 어떻게 데이터에 접근하는지에 대해 알아보려고 한다.디스크에 여러 가지 데이터를 가져오라는 명령이 떨어졌다면우리가 그동안 page replacement scheduling이나 process scheduling 한것처럼데이터를 가져오는 순서를 결정할 필요가 있을 것이다.하드디스크는 기계적인 디스크 헤더로 데이터를 읽어오기 때문에 왔다갔다하면서 시간이 오래걸리기 때문에 어떻게 데이터를 탐색하는 것이 효율적인 것인지에 대해서 알 필요가 있다.(SSD는 전기적이기 때문에 위치에 따른 차이가 크지 않다. 그냥 개빠르다.)그래서 여러 가지 방법을 나열하며 방법들의 장단점에 대해 살펴보려고 한다.첫 번째 방법은 First-come First-ser.......

[Kakao 2018 1차코테] 프렌즈4블록 (C++) [내부링크]

정말 오랜만에 프로그래머스 문제를 풀어보았다. (전날 동아리 친구의 추천을 받아서..)예전에 레벨1은 통과했었기 때문에 바로 레벨2 시험을 보려고 했는데..??? 바로 코테 어렵기로 소문난 카카오 코테문제가 떴다.바로 지레 겁먹고 연습모드로 도망쳤다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ(1시간 안에 2문제는 커녕 1문제도 제대로 못풀거같아서..)아래는 위 카카오 코딩테스트 문제 해설 글에 올라온 간단한 문제 해설을 가져왔다.(프로그래머스에서 가져오기 보다는 원본 제작한 곳에서 가져오는게 맞다고 생각해서...!)(비영리적 목적이면 출처를 명시하고 문제를 올릴 수 있다고 한다.)천천히 생각하면 충분히 풀 수 있는 문제였던 것 같다.내 풀이.......

프로그래머스 레벨2 합격! [내부링크]

첫 레벨2 테스트에서 카카오에게 찬물맞고 빤쓰런했는데다행히도 두 번째 도전에서는 쉬운 문제를 주셔서 무사히 통과할 수 있었다.정확한 문제는 프로그래머스 보안때문에 작성할 수 없어서 대강 작성해보면첫 문제는 붙어있는 두 문자가 같으면 지우고 지우고 해서 다 지워지면 1, 지워지지 않으면 0을 만드는 문제였다.알고리즘 자체는 금방 생각해냈고 core dump문제때문에 조금 시간을 낭비하긴 했지만 풀어냈다.그런데 효율성..에서 0점을 받았다.아마 erase를 쓰다보니 O(N^2)으로 돌아가서 그랬을 거라는 추측을 하고stack형태로 다시 짰다. 안지우니까 O(N)으로 무사히 효율성 테스트까지 통과. (50분 걸림)두 번째 문제는 길이가 같.......

네이버, 티스토리, Velog.. 기술 블로그의 고민.. [내부링크]

사실 처음 블로그를 써봐야겠다 한 것은 지난 9월 네이버 인턴에 지원할 때 블로그에 특정 소재(아마 데이터센터프로그래밍 관련 내용이었던 걸로 기억한다)로 분석글을 올리는 게 있었는데 꾸준히 쓰면 나만의 포트폴리오가 충분히 될 것 같다는 생각이 들었다. 그리고 이걸 쓰면서 조금이나마 학교 수업 내용을 복습하지 않을까..라는 생각을 했다. (아주 조금 실현되긴 했다. 시험기간에 몰아쓰면서 복습 ㅋㅋㅋㅋㅋ)그리고 어느 순간 코딩 문제풀이가 주가 되는 블로그가 되어버렸다. 물론 거의 쉬운 문제들이라 나만의 기록용이긴 하다.그리고 3개월이 지난 지금, 많은 고민에 빠져있다. 기술 블로그인 만큼 자기만족도 중요하지만 다른 사.......

ch8 Memory Management Strategies [내부링크]

챕터 1인가에서 메모리에 대해서 간략하게 설명하고 넘어갔었다. (메모리 계층구조에 대해서만 알아봤던 기억이 난다)이번에는 어떻게 적은 메모리를 가지고 큰 용량의 데이터를 적재할 수 있는지 그 전략에 대해 알아보려고 한다.메인 메모리에 비해 부족한 캐시메모리, 혹은 레지스터를 사용할 때는 필요한 부분만 캐시메모리나 레지스터에 올려서 사용하게 된다.예를 들면 카카오톡 로그인에 필요한 프로세스는 로그인이 끝나면 더이상 캐시메모리에 있을 필요가 없다.(한번 로그인하면 다시 쓸 일 없으니까!) 그렇기 때문에 운영체제에서는 캐시메모리를 사용해야 할 일이 있을 때 이 로그인 프로세스를 내려버리고 필요한 프로세스를 올.......

ch9 Virtual Memory Management [내부링크]

이번엔 물리적 메모리가 아닌 가상 메모리를 사용해보자.메인 메모리는 크기가 한정되어 있어서 물리적인 메모리 크기보다 크기가 큰 프로세스를 실행시킬 수 없다. 그렇다면 메인 메모리보다 크기가 큰 프로세스를 실행시키고 싶으면 어떻게 해야할까?물론 메인 메모리를 새로 사서 끼워주면 되지만, 이건 쉽지 않은 방식이다.이 때 사용하는 방법이 바로 가상메모리이다.가상메모리에서 꼭 필요한 부분만 있으면 프로그램이 돌아가는 데는 큰 문제가 없을 것이다. 이런 방식으로 메인 메모리보다 더 큰 프로그램도 돌릴 수 있게 되는 것이다.긔고 Virtual Memory Management는 페이지 단위로 관리하면서 마치 메모리 용량이 무한대인 것처.......

ch10.2 정렬 (힙 정렬, 퀵 정렬, 병합 정렬) [내부링크]

이번엔 보다 복잡한 정렬에 대해서 알아보려고 한다.이전에 알아본 선택정렬, 거품정렬, 삽입정렬은 모두 O(N^2)만큼의 속도를 보여준다.하지만 이번 정렬들은 복잡한 만큼 O(NlogN)만큼의 속도를 보여준다.이 수치는 데이터의 양이 커지면 커질수록 더욱 중요해 지게 된다.다만 이름값을 못하게 퀵정렬은 최악의 경우 O(N^2)의 속도를 보여준다.. (그래서 퀵정렬을 쓸 때는 최악이 안되게 조치를 취해주는 편이다)이제 보다 복잡한 정렬에 대해서 알아보자.4. Heap Sort가장 먼저 힙정렬이다.힙은 이전 포스팅에서 배운 기억이 있다. 맨 위가 가장 크거나 가장 작은 것이 되는 것이었다.이 힙을 이용해서 정렬을 하는 것이다.막 흩뜨려져있는.......

ch10.3 정렬과 여타 잡지식(Hash, RadixSort) [내부링크]

지금까지는 직접 데이터를 정렬하는 방식으로 배웠으나,굳이 그렇게 안하고 포인터순서만 바꿔서 정렬을 할 수도 있다.단지 포인터로만 바꿔주면 된다.※ 포인터로 구현한 퀵정렬또한 Stability라는 것도 있는데,만약 같은 데이터가 존재하는데 원래 앞에 있던 데이터가 sort를 해도 앞에 있는지의 여부를 나타낸다.만약 Stability이면 앞에 있는 데이터가 그대로 앞에 있는 것이고unstable하다면 바뀔 수 있는 것이다.기본적으로 HeapSort와 QuickSort는 자기마음대로 바뀌기 때문에 unstable 조건이 있으면 쓰면 안된다!탐색에는 여러 방식이 있다.기본적으로는 모두 확률이 같기 때문에 Linear Searching도 나쁘지 않다.하지만 나올 확.......

10926 - ??! (C++) [내부링크]

https://www.acmicpc.net/problem/10926문제 : 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.※ 틀린 이유1. char*에는 cin으로 문자열을 받는 것이 불가능하다. (처음에 초기화만 가능)2. Trigraph sequence...문제 이름이 ??!이라는 것이 지금에 와서야 이해가 된다. (처음에는 그냥 단순한 문제인줄 알았다)??! 이렇게 쓰게 되면 |이 등장한다.이건 90년대에 일부 특수문자를 지원하지 않는 입력기에서 일부 특수문자를 입력할 수 있도록 장치를 마.......

10998 - AxB (C++) [내부링크]

https://www.acmicpc.net/problem/10998문제 : 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.설명할 게 없다. 두 수를 받아서 곱해주면 끝이다.

ch1 Introduction [내부링크]

한글로 운영체제, 영어로 Operating System, 줄여서 OS라고 부르는 것을 컴퓨터 관련 이야기를 들을 때 쉽게 들어본 적이 있을 것이다. (사실 우리는 운영체제라는 이름 자체로 듣기보다는 Windows, iOS, MacOS, Android, Linux 등을 듣는 경우가 더 많았을 것이다.)운영체제는 컴퓨터 하드웨어(CPU, 메모리, I/O디바이스)를 효율적으로 관리해서 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있도록 하는 것이다.아, I/O 디바이스는 In / Out Device의 줄임말로 컴퓨터와 컴퓨터외부와의 소통을 담당하는 것이라고 보면 된다. 한국어로 해석하면 입출력장치정도?입력장치의 예로는 키보드, 마우스, 터치패드 등이 있고출력장치의 예로는 스.......

ch2 System Structures [내부링크]

일반적인 시스템의 구성요소로는 8가지가 있다.Process Management(프로세스 관리)Main Memory Management(메인 메모리 관리)I/O System Management(I/O system 관리)Secondary Storage Management(하드디스크 관리)File Management(파일 관리)Networking(네트워킹 관리)Protection System(보안)Command-Interpreter System(사용자 명령어 해석 시스템)이런 일들을 하는게 시스템이다.참 쓸데없이 많은 일을 한다.이제 운영체제의 구조에 대해서 살펴보자.앞 챕터에서 했듯이 User mode는 사용자가 사용하는 곳이고, Kernel mode는 운영체제가 사용하는 곳이다.사용자가 shell, ls, shell ps 처럼 하드웨어 사용을 위해 운영체제에 요청.......

ch3 Process Concept [내부링크]

Process는 운영체제에서 실행하는 프로그램의 최소단위이다.Process Address Space라는 곳에는 다양한 자료들이 존재하는데,이건 자료구조때 배웠던 내용이 연결된다.함수는 메모리 위에 올라가서 실행되어야 하는데, 이 때 가장 먼저 쓰이는 곳이 stack이다. 함수의 호출과 함께 할당되고, 함수의 호출이 완료되면 소멸한다. LIFO로 작동하기 때문에 stack의 이름값을 한다고 볼 수 있다.그리고 필요에 의해 동적으로 메모리를 할당해서 사용하는 곳이 heap이다. (필요한 크기를 몰라서 동적배열을 쓰면 여기서 메모리를 가져다 쓰게 됨)static data는 동적 영역인 stack과 heap이랑은 다르게 정적 데이터를 가진 영역이다. 프로그램이 완전히.......

ch4 Multithreaded Programming [내부링크]

thread는 프로세스 내에서 실행되는 흐름의 단위이다.보통 1개의 프로그램 안에 1개의 스레드가 있지만, 환경에 따라 2개 이상의 스레드가 실행이 가능할 수도 있다. 또한 스레드는 stack영역을 제외한 모든 메모리를 공유한다.위 말만 가지고는 이해하기 어려울 수 있기 때문에 다시 큰 개념부터 내려가면서 설명해보면프로그램이란 어떤 작업을 위해 실행할 수 있는 파일이고,프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다.(메모리에 올라와 실행되고 있는 프로그램 개체라고 볼 수 있다)그리고 스레드는 프로세스 내에서 실행되는 여러 흐름의 단위이다.프로세스로 나눠서 실행하기에는 비용 혹은 자원이 큰 경우 스.......

ch5 Process Scheduling [내부링크]

수강하는 과목에는 여러 개의 과제가 쌓여있으면과제 하나하나가 Process이고과제 중에 어떤 걸 먼저 하냐가 바로 Scheduling이다.그렇다면 어떤 기준에서 과제하는 순서를 정할 수 있을까?1. DeadLine2. 얼마나 오래걸리냐3. 어떤 과목을 포기했냐등으로 정할 수 있을 것이다.(물론 이건 사람마다 다르다.)Process Scheduling은 결국 프로세스를 어떻게 어떤 순서로 관리해 줄 지에 관한 이야기이다.프로세스가 수행이 될 때 CPU에서 계속해서 context switching이 일어나게 된다.또한 I/O interrupt도 계속해서 일어나게 된다.이 과정에서 CPU burst와 I/O burst가 반복해서 일어난다.CPU burst는 실제로 프로세스가 CPU에 올라가서 수행되는.......

ch6 Synchronization [내부링크]

동기화는 이전 챕터에서도 다룬 적이 있었다.아마 프로세스간 데이터 전달에 있어서 동기화가 필요하다고 했었던 기억이 난다.다시 복습을 해보자면여러 개의 프로세스에서 공유자원에 접근할 때 접근하는 순서에 따라 결과값이 의도대로 출력되지 않고 다르게 출력될 수 있기 때문에 동기화가 필요하다고 했었다!ex)예를 들어, 내가 내 계좌에 1000원이 있다고 하자.내가 500원을 출금하려고 하는 동시에, 친구가 내 계좌로 500원을 송금했다면, 내 잔고는 당연히 1000원이 있어야 맞다. 이 때 출금과 송금은 각각 독립된 다른 프로세스 혹은 쓰레드고, 이 두 개의 순서가 혼동된다면 잔고는 500원 혹은 1500원과 같은 결과를 내게 된다.위.......

ch7 Deadlocks [내부링크]

Deadlock은 서로 공유자원을 선점해서 이러지도 저러지도 못하는 현상이다.사실 이전 챕터에서 언급을 했어야 하는 내용이긴 한데, dining philosophy 문제가 대표적인 예이다.사람 5명이 각각 젓가락을 1짝씩만 가지고 있으면 누군가 양보하지 않는 이상 누구도 젓가락질을 할 수 없다. (젓가락질을 하는 데에는 젓가락이 2개 있어야 하므로!!)이것이 바로 dining philosophy이다.이 데드락을 처리하는 방법에는 여러 가지가 있다Deadlock prevention은 Deadlock이 아예 발생하지 않도록 개발자가 설계하면 된다는 그런 방법이다.Deadlock avoidance는 Deadlock에 빠질 가능성이 있는지 운영체제가 검사하고 아닐 경우에 대한 데이터를 전달받.......

Lecture Note 6 무역협정 [내부링크]

1. 관세 부과에 따른 후생 변화 복습무역협정에 대해 알아보기 전에, 이전 내용을 한번 복습해 보려고 한다.Autarky 상태에서는 A 점에서 가격과 수량이 형성되었지만, 외국과의 교역으로 인해서 가격이 하락하게 된다.만약 관세가 부과되지 않는다면 Home country의 자체 생산량은 S1, 수요는 D1, World Market의 수출량은 M1에서 결정되고 가격은 Pw에서 형성될 것이다.이제 세금을 부과한다면 어떻게 되는지 살펴보자. 원래 국제시장의 영향을 받아 X*와 M이 만나는 B*점에서 국제 가격 Pw가 결정되었지만, Home Market의 세금 부과에 의해서 수출곡선이 t만큼 상승하여 (X* + t)로 상승하게 된다. 이 과정에서 가격이 상승해 C점에서 가.......

Lecture Note 7 중력방정식 [내부링크]

1. 중력방정식중력방정식, 중력 모형이랑 두 국가의 교역을 결정짓는 경제적 유인이 무엇인가를 설명하는 모델이다.중력방정식을 이해하기 위해 간단하게 몇가지 자료를 보도록 하자.위 그래프는 EU와 US의 교역량과 EU의 GDP를 가지고 그려낸 그래프이다경제규모가 클수록 미국과의 교역량 역시 커진다는 것을 알 수 있다.즉, Economic size가 중요하다는 사실을 쉽게 짐작할 수 있다.이번 그래프는 캐나다와 멕시코의 위엄이 되겠다.EU가 아무리 미쳐 날뛴다고 해도 미국에 있어서 캐나다와 멕시코는 넘사벽으로 큰 교역국이다.캐나다와 멕시코가 다른 EU에 비해서 미국에 수출을 많이 할 수 있는 이유가 뭔지를 살펴봤다니우선 거리.......

Lecture Note 8 국제무역협정의 실증분석 [내부링크]

1. 실증분석 1이제 국제무역협정의 실증분석을 해 보려고 한다.WTO/GATT는 거의 모든 국가가 참여하고 있는 무역 협정이다.Multilateralism(다자주의)의 대표격이라고 볼 수 있다. 이런 전 세계를 대상으로 하는 협정이 과연 회원국들에게는 어떤 영향을 끼칠까?또한 CU, FTA, PSA(PTA)는 또 어떤 효과와 영향을 끼칠까?먼저 WTO의 교역효과를 살펴보았다.Rose교수님이 2004년에 발표한 논문에 따르면충격적이게도 WTO의 무역효과는 찾기 힘들다는 결론이 나왔다.눈으로 직접 봐야하지 않겠는가!! 아래는 로즈교수님의 중력방정식이다.변수가 아주아주아주아주 다양하다. 여기서 눈여겨봐야할 정보는 감마이다.감마1은 i와 j가 모두 WTO .......

Lecture Note 9 노동력의 이동 [내부링크]

1. 국가간 노동력의 이동이번엔 상품교역이 불가능한 상태에서 노동력만 이동하게 된다면 어떤 경제적 효과가 있을까에 대해서 알아보려고 한다.대부분의 사람들은 높은 임금을 얻을 수 있는 국가로 이동하는 것을 알 수 있다.그렇다면 교육 수준은 어떨까?신기한 모형을 띈다. U자형 모형이다.중졸 이하, 혹은 고졸 이하는 외국인 노동자의 비율이 굉장히 높고, 또 석사 이상의 학위를 가진 사람의 비율 역시 외국인 노동자의 비율이 높다.미국과 유럽, 캐나다, 호주와 같이 자본이 많고 노동의 희소가치가 높은 국가는 해외이주자를 환영한다. 그리고 이들은 특정 분야에서 국내 노동자와 경쟁을 하게 된다. 하지만 해외이주.......

ch8.2 이진탐색 트리 [내부링크]

이진탐색트리란 탐색이 가능한 이진트리와 연결리스트를 결합한 자료구조이다.이진트리와의 차이는 탐색이 가능하다는 것인데,바로 정해진 순서에 따라 왼쪽과 오른쪽으로 구분해서 데이터가 들어가게 된다.위 사진은 가장 기본적인 이진 탐색트리를 가져와보았다.오름차순이냐 내림차순이냐는 차이가 좀 있을 수 있지만, 대부분은 이렇게 작은게 왼쪽, 큰게 오른쪽으로 들어가게 된다.위 원칙에 따라 정리를 해 보면- 각 노드의 왼쪽 서브트리에는 해당 노드의 값보다 작은 값으로 이루어진 노드로 구성되어 있다.- 각 노드의 오른쪽 서브트리에는 해당 노드의 값보다 큰 값으로 이루어진 노드로 구성되어 있다.- 각 서브트리는 모두 이진탐색.......

ch9.1 힙과 우선순위큐 [내부링크]

Heap의 기본은 Binary tree이다.그리고 두 가지 조건을 모두 만족해야 하는데,Shape와 Order을 모두 만족해야 한다.먼저 Shape는 반드시 Complete binary tree여야 한다.이전 ch8.1에서 간단하게 설명했지만 다시 설명해보면Complete binary tree는 맨 마지막 레벨의 값이 다 왼쪽으로 몰려있고,나머지 위쪽 레벨의 값들은 perfect binary tree여야 한다.그리고 Order는 부모노드가 자식 노드보다 크거나, 작아야 한다는 것이다.부모 노드가 자식 노드보다 크다면 아래로 쭉 내려갈수록 작아질 것이고(Max heap이라고 한다)부모 노드가 자식 노드보다 작다면 아래로 쭉 내려갈수록 커질 것이다.(Min heap이라고 한다)Heap의 장점은, 언제나.......

ch9.2 그래프 [내부링크]

지금까지는 깔끔하게 정리되어 있는 자료들만 봐왔지만,세상에 있는 모든 것들이 다 깔끔하지는 않다..지저분하게 이렇게 저렇게 연결되어있을 수도 있는 거잖아!!그래서 바로 그 지저분한 그래프라는 것을 알아보려고 한다.그래프란 여러 노드들이 다양하게 연결되어 있는 것을 뜻한다.우리가 지금까지 만들어온 것들도 모두 그래프의 일종이라고 할 수 있다.각 노드들은 edge들로 연결되어 있고, 방향성을 가지고 있다.(아래에는 vertice(vertex의 복수형)라고 나와있는데, node(노드)과 vertex(정점)는 사실상 같다. 다만 그래프에서는 vertex라고 많이 부르는 편이니 참고하면 좋다!)보통 그래프는 G = (V,E) 이런 식으로 표현.......

ch9.3 DFS, BFS [내부링크]

이제 그래프도 탐색해야 할 시간이다.과연 이 복잡한 그래프들을 어떻게 탐색하면 좋을까 싶어서 나온 것이 바로 DFS와 BFS이다.DFS(Depth-First-Search)는 깊이 우선 탐색이고,BFS(Breadth-First-Searching)은 넓이 우선 탐색이다.먼저 간단하게 설명하면, DFS는 먼저 깊이 쭉 들어가서 찾는 것이고 (보통 stack 사용),BFS는 같은 레벨에 있는 값들부터 탐색하는 것이다 (보통 queue 사용).말로만 해서는 이해가 잘 안될 수 있으니 슬라이드를 확인해보자.※ DFS우리는 오스틴에서 워싱턴으로 가는 경로를 찾고자 한다.그래서 오스틴과 연결된 것들을 스택에 넣는다.댈러스와 휴스턴이 담겼는데이제 휴스턴을 빼고, 휴스턴과 연결된 친.......

ch10.1 정렬 (선택정렬, 거품정렬, 삽입정렬) [내부링크]

Sort의 뜻이 뭘까? 정렬이다.당연히 이런 단순 한글 번역을 원한 것은 아닐 것이다.정렬이란, 어떤 자료들을 key attribute 순서대로 정리하는 것이다.이 key의 특성은 unique해야 한다는 점이 있지만실제로는 unique하지 않아도 정렬은 할 수 있다. (1 3 5 7 7 8 처럼 숫자가 서로 같아도 어쩄든 옆에 두면 되니까)그래도 우리는 편의를 위해 값이 unique하다고 가정하자.또한 당연한 말일 수도 있는데 key값은 비교가 가능해야 한다. 그래야 정렬이 가능하니까.또한 정렬의 방향은 오름차순이 될 수도 있고 내림차순이 될 수도 있다.여기서는 편의상 오름차순만 생각하도록 하자.무언가를 정렬하는 것은 여러 가지 방법이 있다.무엇이 가장 훌.......

10172 - 개 (C++) [내부링크]

https://www.acmicpc.net/problem/10172문제 : 아래 예제와 같이 개를 출력하시오.※ 틀린 이유1. 마지막줄 \\를 못봤다..이번에도 설명할 것 없는 escape sequence 출력문제! 큰따옴표 앞에도 \를 붙이는 것을 잊지 말자!

10430 - 나머지 (C++) [내부링크]

https://www.acmicpc.net/problem/10430문제 : (A+B)%C는 ((A%C) + (B%C))%C 와 같을까?(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.※ 틀린 이유1. 두번째 줄 출력하는 걸 이상하게 적었다.그냥 하라는 대로만 하면 된다. 나는 그걸 못해서 한번 틀려버렸다.. ㅋㅋㅋㅋㅋ

1212 - 8진수 2진수 (C++) [내부링크]

https://www.acmicpc.net/problem/1212문제 : 8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.※ char사용※ string 사용※ 틀린※ 틀린 이유1. strlen쓰면서 cstring 라이브러리를 include하지 않았음2. a[0]이 0일때를 고려하지 않았음3. for문이 돌때마다 strlen이 돌아서 시간초과코드는 길어보이지만, 알고리즘 자체는 생각보다는 별로 어렵지 않았다.오히려 속도때문에 조금 힘들었다.중간에 for문에 strlen을 사용했는데, 이거때문에 시간초과가 났었다.이것만 고쳐주니(밖으로 빼주니) 바로 통과.그런데 for문 안에서 string의 size()를 쓰면 36ms로 통과했다.strlen이랑 size랑 메커니즘이 좀 다른가보다. (strl.......

10699 - 오늘 날짜 (C++) [내부링크]

https://www.acmicpc.net/problem/10699문제 : 서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.ctime을 너무나도 오랜만에 사용하게 되었다. (사실 기억이 안나서 검색함)curr_tm이라는 tm이라는 구조체를 가진 포인터변수를 하나 만들어서 거기다가 localtime(&curr_time)을 걸어주었다. 이걸로 쓰기 쉽게 조작했고, tm_year+1900, tm_mon+1, tm_mday으로 원하는 값을 출력하였다.만약 시간도 원하면 충분히 tm구조체를 사용해서 출력할 수 있다.(tm_hour, tm_min, tm_sec)심지어 서머타임까지 구현이 가능하다니.. 한국인 입장에서 보면 참 별걸 다 구현해놓았다(?)

10718 - We love kriii (C++) [내부링크]

https://www.acmicpc.net/problem/10718문제 : ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다.대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자.도대체 왜 강한친구 대한육군을 출력하라는 것인지는 잘 모르겠지만 ㅋㅋㅋㅋㅋㅋㅋ 하래서 그냥 2번 출력했다.ㅋㄲㅈㅁ ㅋㄲㅈㅁ 인가??p.s. 왜 11달 전에 이 문제를 풀었던 것인지는 잘 모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

10757 - 큰 수 A+B (C++) [내부링크]

https://www.acmicpc.net/problem/10757문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력 - 첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)출력 - 첫째 줄에 A+B를 출력한다.※ 틀린 이유1. 단순히 add만 복사붙여넣기함2. using namespace std;를 붙이고 아래쪽 main에서 std::를 씀3. add에 그대로 a,b 넣음(큰 값을 앞에 둬야 하는데, 예전에 만들었던 것을 그대로 가져오다 보니 까먹고 그냥 떄려박았다)4. add 내부 r의 크기를 1010으로 했다 (최소 10001보다는 커야한다)5. max와 min 내부 return값 수정이 완벽하지 못했다.또 큰 수의 덧셈이다. 이젠 큰수만 나오면 이전에 풀었던 브론즈 5 .......

10869 - 사칙연산 (C++) [내부링크]

www.acmicpc.net/problem/10869문제 : 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 딱히 설명할 내용이 없다. endl 대신 \n을 써서 속도를 조금 올려보았다.

ch5.2 Inchworm Effect [내부링크]

사진으로 표현하자면 이렇다.predLoc와 location을 모두 가지고 있기 때문에 원래 Linked list에서 할 수 없었던 뒤를 확인하는 행위를 할 수 있게 되었다. 다만 이렇게 predLoc라는 포인터를 따로 만들면 바로 뒤는 확인할 수 있지만 거기서 더 뒤로는 갈 수가 없다.그렇다면 뒤로 계속 가고 싶으면 어떻게 해야 할까? 이 때 등장한 것이 바로 Doubly Linked list이다. 지금까지는 앞에만 포인터가 존재했다면 이제는 뒤로도 쭉쭉쭉쭉 갈 수 있게 된 것이다. 이건 다음 포스팅에 작성해 보도록 하겠다.p.s 물론 다시 처음으로 돌아가는 Circular linked list도 있다. 필요에 따라 쓰면 된다.

ch6.1 Lists Plus(Doubly Linked List, Circular Linked List) [내부링크]

이전 챕터5에서 Linked list를 배우면서 포인터가 한쪽 방향으로 이동한다는 것을 배웠다. 이 방법의 단점은 뒤로 돌아갈 수가 없다는 것이었다. 이를 보완하기 위해 2가지의 Linked List가 등장하는데, 하나는 Doubly Linked List이고 나머지 하나는 Circular Linked List이다.사진만 봐도 이해가 갈 것이다. Doubly Linked List는 한 노드에 포인터변수가 2개가 들어가고, Circular Linked List는 맨 끝이 맨 앞을 가리키는 포인터를 가지고 있는 형태이다.Circular Linked List의 경우 설명할 게 거의 없다. 코드 상으로도 구현이 어렵지 않다.하지만 문제는 Doubly Linked List이다. 이거 Insert함수 잘못 짜면 Dangling Pointer가 무지막.......

ch6.2 배열로 만드는 Linked List [내부링크]

우리는 앞에서 복잡하게 Struct라는것을 만들어서 Node를 만들었다. 하지만 배열을 이용하면 보다 간편하게 연결 리스트를 구현할 수 있다.위 사진은 배열로 표현한 연결 리스트의 형태이다.간단히 살펴보면 구조가 똑같다는 것을 알 수 있다. 편의를 위해 앞에 index 번호가 붙어있고, 첫 번째 열에 value가 있으며 다음에 어디로 갈 지에 대한 포인터가 두번째 열에 있다.list1은 배열의 인덱스 0번째부터 시작하는 것이고, list2는 배열의 인덱스 1번째부터 시작하는 것이다.free는 빈 배열들을 엮어주는 것이다. 새로운 값이 들어오면 다음에 어디다 넣어야 할 지 알려주는 리스트이기도 하다.일반 Linked List의 장점은(1) 동적 메모.......

ch6.3 얕은 복사와 깊은 복사 [내부링크]

이번엔 얕은 복사와 깊은 복사에 대해 알아보자.c++를 배울 때 처음에 가장 헷갈리는 부분이 바로 Reference(&)이다.나도 도대체 왜 *와 &를 나눠서 이렇게 복잡하게 쓰는지 이해가 안갔었던 기억이 난다. (파이썬을 배울 때에는 이런 걱정 없이 했거늘...)하지만 딱 한 번만 이해하면 어렵지 않다. 이번 글에서는 정말 최대한 간단하게 소개해 보려고 한다. 이 글을 통해 대충이나마 이해하면, 만약 추가적인 이해가 필요한 상황에 복사에 관한 더 자세한 글을 읽어도 어느 정도는 이해할 수 있을 정도로 알려드리고자 한다.위 사진은 얕은 복사과 깊은 복사에 대해 아주 간단하게 잘 설명해 놓은 사진이라서 가져왔다.조금 더 풀어서 설.......

ch7.1 Recursion(재귀함수) [내부링크]

어떤 함수를 쓰다보면, 이걸 함수 내에서 또 써야하는데?? 하는 상황이 생길 수 있다.이런 경우 for문과 while문으로 적절히 버무리면 구현이 가능하지만, 보다 이해하기 쉽고 빠르게 구현할 수 있는 또 다른 방법이 존재한다. 바로 재귀함수이다.위 사진은 Recursive Function의 가장 대표적인 예를 가져온 것이다. 위의 recursion이라는 함수는 함수 내에서 resursion을 다시 사용하고 있다. 이러면 무한으로 돌아가지 않을까? 걱정하는 사람이 있을 수 있다. 그런 걱정을 없애기 위해서 base case라는 것이 필요하다.Base case는 더 이상 resursive가 돌아가지 않는 조건을 뜻한다. 위에서는 x가 0이면 return값에 아무것도 없다. 즉 함수가.......

ch8.1 이진 트리 [내부링크]

이진트리는 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조로, 각각 왼쪽 자식 노드와 오른쪽 자식 노드를 가지고 있다. (물론 가지지 않을 수도 있다.)먼저 간략하게 용어정의를 하면Root Node는 맨 위 노드를 뜻하고, Leaf Node는 child가 없는 노드들을 뜻한다.(반대는 unleaf node)트리의 레벨은 첫 노드가 0, 아래로 한칸씩 내려갈수록 레벨이 1씩 증가하게 된다. 다만 이 부분은 가르쳐주시는 분에 따라 차이가 있을 수 있다.(Root Node가 레벨1이라고 하시는 분들도 있음) 여기서는 레벨0이라고 생각하자.ex) 위 사진에서 11은 레벨 3이 된다.트리의 높이는 레벨의 수가 된다. 경로의 최대 길이라고도 볼 수 있다. 위.......

5522 - 카드 게임 (C++) [내부링크]

https://www.acmicpc.net/problem/5522문제 : JOI군은 카드 게임을 하고 있다. 이 카드 게임은 5회의 게임으로 진행되며, 그 총점으로 승부를 하는 게임이다.JOI군의 각 게임의 득점을 나타내는 정수가 주어졌을 때, JOI군의 총점을 구하는 프로그램을 작성하라.설명할 내용이 없다. 그냥 다 더해주면 끝!

5554 - 심부름 가는 길 (C++) [내부링크]

https://www.acmicpc.net/problem/5554문제 : 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.문제가 길어서 어려워보이지만, 막상 풀어보면 어렵지 않다.a,b,c,d 4개의 값을 사용자로부터 받아서그.......

6749 - Next in line (C++) [내부링크]

https://www.acmicpc.net/problem/6749문제 : You know a family with three children. Their ages form an arithmetic sequence: the difference in ages between the middle child and youngest child is the same as the difference in ages between the oldest child and the middle child. For example, their ages could be 5, 10 and 15, since both adjacent pairs have a difference of 5 years.Given the ages of the youngest and middle children, what is the age of the oldest child?문제가 영어라서 굉장히 당황했다. 영알못이기 때문에..굳이 번역하자면 첫째와 둘째 나이차이가 둘째랑 막내 나이차이와 같은데, 둘째랑 막내 나.......

7287 - 등록 (C++) [내부링크]

https://www.acmicpc.net/problem/7287문제 : 자신이 백준 온라인 저지(BOJ)에서 맞은 문제의 수와 아이디를 그대로 출력하는 프로그램을 작성하시오.처음에는 어떻게 가져오지 고민을 했었는데, 우선 이거 해보고 안되면 다음에 생각해보자 하고 숫자 때려박았더니 됐다. 이렇게 허무할 줄이야..

8370 - Plane (C++) [내부링크]

https://www.acmicpc.net/problem/8370문제 : Byteland Airlines recently extended their aircraft fleet with a new model of a plane. The new acquisition has n1 rows of seats in the business class and n2 rows in the economic class. In the business class each row contains k1 seats, while each row in the economic class has k2 seats.Write a program which:- reads information about available seats in the plane,- calculates the sum of all seats available in that plane,- writes the result.역시 영어문제라 어려워 보이지만, 껍데기만 영어일 뿐 쉬운 문제이다.비즈니스클래스에는 n1줄이 있고, 줄마다 k1만큼의 자리.......

8393 - 합 (C++) [내부링크]

https://www.acmicpc.net/problem/8393문제 : n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.틀린 이유1. sum값을 초기화를 안해줌1부터 입력값까지의 합을 구하는 문제이다.문제에 정수라는 조건이 달려있으면 보다 명확했을텐데, 굳이 안적어도 .. 다들 알아볼테니 안적은 것 같다.너무 오랜만에 for문이 나와서 신나서 쓰다보니 sum을 초기화를 안해줬다. 이런 오류는 문제 난이도가 올라가면 자연스럽게 해결 될 문제겠지..?

8437 - Julka (C++) [내부링크]

https://www.acmicpc.net/problem/8437※ 주의.. 폴란드어입니다! 아래 한국어로 풀어서 써놨어요!문제 : Julka zaskoczyła wczoraj w przedszkolu swoją wychowawczynię rozwiązując następującą zagadkę:Klaudia i Natalia mają razem 10 jabłek, ale Klaudia ma o 2 jabłka więcej niż Natalia. Ile jabłek ma każda z dziewczynek?Julka odpowiedziała bez namysłu: Klaudia ma sześć jabłek, natomiast Natalia ma cztery jabłka.Wychowywaczyni postanowiła sprawdzić, czy odpowiedź Julki nie była przypadkowa i powtarzała zagadkę, za każdym razem zwiększając liczby jabłek w zadaniu. Julka zaws.......

9653 - 스타워즈 로고 (C++) [내부링크]

https://www.acmicpc.net/problem/9653문제 : 스타워즈 로고를 예제 출력과 같이 출력하는 프로그램을 작성하시오.음.. 달리 설명할게 없다. endl을 한줄에 몰아서 2번써도 되는데, 그냥 이렇게 했다.

C의 char* 그리고 C++의 const char* [내부링크]

학교 과제를 할 때, 참고코드를 받아서 작업을 하곤 하는데, 이따금씩 원본이 char*로 되어있어서 const char*로 바꿔야 한다는 이야기를 조교님께 듣곤 했다.사실 처음에는 이게 무슨 소리인지 모르고 char*의 앞에다가 죄다 const를 적고 끝냈더니 잘 돌아가더라~ 정도로만 생각해서 그런가보다 했는데, 기말고사를 볼 때쯤 되니 궁금해 졌다.도대체 왜 const를 써야 되는거지? 어짜피 char*은 따로 변경이 안될텐데..?(char* a = "abc"를 한 후에 a = "abc"하면 오류가 나온다. 문자열 중간을 바꿀 수는 없다는 것은 작년 파이썬수업을 처음 배웠을 때 암기한 내용이었다.)C언어 컴파일러에서는 전혀 오류가.......

9654 - 나부 함대 데이터 (C++) [내부링크]

https://www.acmicpc.net/problem/9654문제 : 나부 행성의 함대 정보를 출력하는 프로그램을 작성하시오.※ 틀린 이유1. 공백을 넣지 않아서처음에는 iomanip 라이브러리를 불러와서 setw를 쓰면 되지 않을까 생각했는데 알고보니 setw는 공간을 마련하고 뒤에서부터 채운다(공백이 앞에 생긴다). 그래서 그냥 포기하고 공백을 넣는 식으로 만들었다.처음에 공백을 안넣었다가 출력 형식이 잘못됐다는 처음보는 오류가 발생해서 검색해보니 보통 공백오류라고 해서 공백까지 착실히 채워줬다니 2트만에 통과!p.s 그런데 똑같이 C++로 푼 사람들은 대부분 \n을 썼다. 나처럼 endl 쓴 사람은 거의 없던데.. 내가 이상한건가..? ㅋㅋㅋㅋㅋㅋㅋ.......

10170 - NFC West vs North (C++) [내부링크]

https://www.acmicpc.net/problem/10170문제 : 동혁이를 위해 NFC 서부와 북부 디비전 순위를 출력하는 프로그램을 작성하시오.설명할 게 없다. 브론즈 5만 먼저 싸그리 풀다보니 느낀거지만 출력문제가 참 많다. 이것도 날먹문제중 하나.

10171 - 고양이 (C++) [내부링크]

https://www.acmicpc.net/problem/10171문제 : 아래 예제와 같이 고양이를 출력하시오.이번 문제도 escape sequence만 조심하면 된다. 근데 내가 거의 1년 전에 이 문제를 풀었었네..? 문제 풀면서 뭔가 익숙한 느낌이 들긴 했는데.. 신기하다 ;;

5339 - 콜센터 (C++) [내부링크]

https://www.acmicpc.net/problem/5339문제 : 스타워즈에 등장하는 로봇인 C3PO는 요즘 콜센터에 근무하고 있다. 콜센터에 앉아있는 C3PO를 그리는 프로그램을 작성하시오.※ 틀린 이유1. 엔터가 잘못눌림..2. 엔터가 잘못눌림..복사 붙여넣기 하다가 제출버튼만 두번 눌러졌다. 이런이런..이 문제 역시 escape sequence만 조심하면 되는 문제!

2845 - 파티가 끝나고 난 뒤 (C++) [내부링크]

https://www.acmicpc.net/problem/2845파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다.지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다. 그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다.상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다.상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 각 신문 기사에 실려있는 참가자의 수.......

2914 - 저작권 (C++) [내부링크]

https://www.acmicpc.net/problem/2914문제 : 창영이는 노래 여러 개를 이어서 부르는 가수이다. 유명한 노래의 비슷한 멜로디를 이어서 부르면서 언제 곡이 넘어갔는지 모르게 만드는 것이 창영이 노래의 특징이다. 이런 노래로 상업적으로 엄청난 성공을 거둔 창영이에게 큰 시련이 찾아왔다. 그것은 바로 저작권이었다.창영이의 노래에 포함되어 있는 멜로디는 모두 저작권이 다른 사람에게 있는 노래이다. 따라서, 이 음악으로 상업적인 활동을 했기 때문에, 저작권 협회에 저작권료를 내야한다.창영이는 자신의 앨범에 포함되어있는 저작권이 있는 멜로디의 평균값을 구해보기로 했다. 이 값은 아래와 같이 구할 수 있다.(창영이 앨범에 수.......

3003 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (C++) [내부링크]

https://www.acmicpc.net/problem/3003문제 : 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.이번 문제도 브론즈 5다운 문제였다.다만 주의할 점은 a-1이 아니라 1-a 라는 점이다.왜 2번 틀렸냐면,1. cin에 마지막 f를 안넣음2. a.......

3046 - R2 (C++) [내부링크]

https://www.acmicpc.net/problem/3046문제 : 두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 이 숫자를 받아 적는다. 그리고 나서 기쁜 마음으로 1년동안 이 숫자를 외우면서 산다.상근이는 R1과 R2를 엄청난 고민 끝에 정했다. 작년에는 R1과 R2를 까먹어서 아무 숫자나 정해서 주었기 때문에, 올해는 까먹지 않기 위해서 평균 S도 같이 기억하려고 한다.오늘은 정인이 생일이다. 5분 후에 상근이는 생일 선물로 두 숫자 R1과 R2를 말해주어야 하지만, 안타깝게도 R2를 까먹고 말았다. 하지.......

5337 - 웰컴 (C++) [내부링크]

https://www.acmicpc.net/problem/5337문제 : Welcome을 예제 출력처럼 출력하는 프로그램을 작성하시오.틀린 이유1. \를 사용할 때는 2번 써줘야 한다 (escape sequence)이건 검색 안했으면 틀렸을 것 같다. 도대체 왜 틀렸지 하고 VS로 가져와서 돌려봤는데도 잘 모르겠어서 (\가 출력이 되지 않는다는건 확인은 했다) 검색했고, 바로 이유가 나왔다. 어휴 부끄러워라.

5338 - 마이크로소프트 로고 (C++) [내부링크]

https://www.acmicpc.net/problem/5338문제 : 마이크로소프트 로고를 예제 출력처럼 출력하는 프로그램을 작성하시오.이번에는 escape sequence가 없어서 아주 쉽게 풀었다. 딱히 설명할 내용이 없다!

2338) 긴자리 계산 - C++, Python [내부링크]

※ Python3 버전※ C++17 버전또 속았다. 이래도 이번엔 알고 속았다. 제일 어려운 나눗셈을 했으니 덧셈, 뺄셈, 곱셈은 금방 하겠지라고 생각한 것은 큰 오판이었다. 자그마치 24시간만에 클리어..도저히 모르겠어서 파이썬으로 빨리 깨버리고 클리어한 다른 분들의 소스코드를 봤지만 너무나도 길어서 그냥 내가 짜는게 낫겠다는 판단이 들었다. 무한 구글링과 조사와 시행착오를 통해 곱셈을 어떻게 어떻게 완성하고, 그 곱셈을 바탕으로 덧셈과 뺄셈을 만드려고 했지만 아예 구조가 달랐다. 덧셈과 뺄셈은 그나마 비슷한 구조로 완성시켰다.C++ BigInteger 구현정도면 골드급이 아니라 플레..정도는 줘도 되지 않을까라는 브론즈도 쩔.......

2475) 검증수 - C++ [내부링크]

크게 어렵지 않다. 제곱해서 10으로 나눈 나머지를 구하는 %를 사용하면 된다.이 문제는 무려 한국정보올림피아드 2010년 지역본선 초등부 1번문제였다. 하지만1. using namespace std; (std::) 안써서2. cin인데 << 쉬프트연산자 방향을 반대로 써서3. %대신 / 써서4. %10 뒤에 ;안붙여서다양한 에러로 6수끝에 성불했다. 초등학생분들, 그리고 VS의 위대함을 알 것 같다.꼼꼼해지자, VS에게 항상 감사하자..

[20.12.01~20.12.06] 카멜 모니터 체험단 모집 [내부링크]

집에서 작업하는 시간이 늘어나다보니, 모니터에 대한 욕심이 점차 늘어나기 시작했다.현재도 듀얼 모니터를 사용중인데, 코딩용으로 세로로 피벗시켜 사용할 만한 모니터에 대해 알아보던 중에 좋은 기회가 있어서 신청해보려고 한다!

1008 - A/B (C++) [내부링크]

https://www.acmicpc.net/problem/1008문제 : 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.처음으로 풀어본 브론즈4 문제. 역시 한단계 높은 수준이라 꽤나 어렵다. (?)처음에 cin줄 마지막에 ;를 안붙여서 두번이나 컴파일 에러를 냈다. 여전히 칠칠맞군..그 이후에는 int형으로 받아서 오류가 나고,int는 소숫점을 표현하지 않는다는 것을 알고 float로 고쳤다.그리고 바로 오류 뿜뿜VS에서 돌려보니, 6자리까지밖에 출력되지 않았다.알고보니 std::cout의 기본 정밀도는 6이어서, 6자리 까지만 유의하다고 가정하고 이후는 잘라낸다고 한다. 그래서 setprecision을 사용해서 출력범위를 넓혀주었다.또한, f.......

2558 - A+B -2 (C++) [내부링크]

https://www.acmicpc.net/problem/2558문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.음..? 1000번이랑 같은 문제인데..? 싶어서 풀었는데 다행히도 이번에는 한번에 풀었다.나중에 이런 같은문제 나오면 자바로도 풀어봐야지..! (자바라고는 정처기 준비할때 잠깐 본 수준의 자알못..이라 이런문제도 어렵다.)

1000) A+B - C++ [내부링크]

딱히 설명할 내용이 없다.iostream 잘 include해서 a와 b를 더해주면 된다.왜 4번이나 틀렸냐..면1. using namespace std; 안써서 (std::로도 가능)2. int 표기를 안해줘서3. cin에 endl붙여서4. cin이랑 cout 옆에 붙는 괄호 방향 바뀌어서참.. 처음으로 푸는 문제라지만 많이 부끄럽다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 심지어 마지막에 return 0;도 안했지만 동작에는 영향이 없었다는 것... 더 열심히 연습해보자!

1001) A-B - C++ [내부링크]

평균시도 1.38.. 짜리 문제를 틀렸다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ이유는 a-b가 아니라 a+b를 썼다.이 문제도 딱히 설명할 필요는 없어보인다.cout 안에서 a-b를 해도 잘 출력된다는 것을 알 수 있었다.문제를 잘 확인하자.p.s. 딱 2문제 풀었는데, 문제를 풀 때 제출창만 뜨고 문제는 볼 수 없어서 따로 2개를 켜야한다는 것은 굉장한 불편함인 것 같다. 일부러 이렇게 해 두신건가..?

1271) 엄청난 부자2 - C++, Python [내부링크]

※ Python3 버전※ C++ 버전분명.. 브론즈 5임에도 C++로 박치기하려했던 나에게는 너무나도 큰 관문이었다.알고보니 파이썬으로 풀때 브론즈 5..였다고 한다.자바는 기본 API에서 BigInteger라는 클래스를 제공하지만, C++은.. 공식적으로 제공하는게 없는 탓에 직접 만들어야한다. 실버는 커녕 브론즈 상위문제도 안풀어봤지만, 최소 골드난이도는 아닐까 싶은 수준의 문제였다.(기분 좋게 브론즈5 문제 좀만 풀다가 이번주 일요일에 있을 정처기 실기 공부하려고 했는데 이게 무슨 날벼락...)※ C++C++ 기준 long long으로도 해결이 안되는 매우 큰 수의 연산의 경우, 문자열로 처리를 해주면 된다.(다른 방식이 있을 지도.......

1550) 16진수 - C++ [내부링크]

네 번째 브론즈5 문제이다. 이걸 어떻게 구현하지라고 생각했는데, 좋은 메소드가 이미 존재했다.strtol이라는 메소드에 대해서는 위에 자세히 적어놓았다.stdlib.h라는 헤더파일 안에 들어있는데, 굳이 이걸 쓰지 않아도 iostream만 불러와도 잘 작동했다.이런 메소드들만 많이 알아도 아주 가끔 유용하게 쓸 수 있지 않을까 싶다..? (이걸 어따쓰나 싶지만.. 문제풀이 용도정도??)

ch4.1 Stack [내부링크]

자료구조 수업을 들으면서 가장 처음 접하게 되는 새로운 요소가 바로 스택이다. (List는 파이썬이든 C++이든 자바든 한번씩은 들어보지 않았을까?)스택은 말 그대로 쌓아놓은 무언가다.이 쌓아놓은 것을 아래서부터 빼버리면 와장창 무너지겠지?그러므로 스택에서 무언가를 넣고 뺄 때는 맨 위에서밖에 할 수가 없다.그래서 스택을 설명할 때 가장 중요하게 여겨지는 구조는 LIFO(Last in First out)이다.이 Stack의 연산은 두 가지로 나눌 수 있는데, (ADT Stack Operations)Transformers에는 Push(삽입), Pop(뺌), MakeEmpty(다비워)Observer에는 IsEmpty(비었냐?), IsFull(꽉찼냐?), Top(맨 위에가 뭐냐?)이렇게 나눌 수 있.......

ch4.2 Queue [내부링크]

큐는 말 그대로 줄서기이다.계산대 앞에서 계산을 할 때 맨 앞에 있는 사람이 계산을 하고 끝나면 그대로 나간다. 줄은 뒤로 쭉 선다.이게 끝이다. 그래서 Queue의 가장 큰 특징은 FIFO(First in First out)이다. 맨 먼저 들어온 놈이 맨 먼저 나간다.이 방법은 운영체제에서 많이 쓰이고, 일상 생활에서도 queue가 stack보다는 일반적인 구조라고 볼 수 있다.Queue의 ADT Operations는 역시 두 가지로 나눌 수 있다.Transformers : MakeEmpty(다 비워), Enqueue(넣어), Dequeue(빼)Observers : IsEmpty(비었어?), IsFull(꽉 찼어?)Stack과 Queue의 가장 큰 차이점이라고 할 수 있는 점은, Queue는 원형으로 많이 쓰게 된다.특정.......

ch5.1 Linked Structure [내부링크]

지금까지 배운 UnsortedList, SortedList, Stack, Queue는 모두 일반 배열을 사용해서 만들었다.일반 배열에서는 index를 사용했다.이제 C++의 꽃인 포인터를 이용해서 보다 발전된 자료구조를 맛보아야 하지 않을까?포인터를 써야한다는 것 이외에는 전부 동일하다.이제는 index가 아니라 topPtr이라는걸 만들어서, 다음 자료가 위치할 곳을 포인팅해준다.이 topPtr이 가리키는 곳에는 info라는 자료와 next라는 포인터가 들어있다.이 말은, 앞으로는 굳이 위치메모리의 순서를 생각해서 데이터를 넣을 필요가 없다는 이야기다!0x1000위치에 넣었고 그 다음엔 0x1004 이렇게 넣었다면이제는 0x7000위치에 넣고 다음 데이터는 0x.......

중간고사 폭망.. [내부링크]

이번학기 C++에만 꽤나 많은 시간을 퍼부어서어짜피 오픈북이라는 생각에 실습공부를 너무 소홀히 했다.이론에서도 말도 안되는 실수떄문에 25점이 날아갔는데 (문제에서 쓰지 말라는거 못읽고 써버림)안일메타는 나랑 너무 가까운 것 같다. 좀 떨어져 주면 안되겠니 ㅠㅠ시험때는 1번문제에 막혀 손도 못댔던 2번문제를 지금 다시 풀어보니 정말 쉽게 풀린다. 이거 먼저 풀 걸 그랬다. 그리고 뒤늦게 1번도 찾아보니 등호하나떄문에 값이 이상하게 나온거였다. 역시 코딩은 정말 꼼꼼한 사람에게 유리한 것 같다.조만간 코드리뷰를 한 번 해보고 싶지만, 문제 자체를 공개하는 것은 문제의 여지가 조금 있을 것 같아서 공개글로 써야할 지.......

Lecture Note 2 관세를 징수하는 이유 [내부링크]

국제무역론 시간에 배웠던 부분에 대한 복습에 가깝다.1. 왜 국가들은 교역을 할까?Ricardian model -> 생산량에 따른 차이때문에Hecksher-Ohlin -> 주어진 재화의 차이때문에 (differences in factor endowment)New trade -> 동등한 국가여도 시장구조적 차이때문에(Economies of scale 등, 독점적 경쟁시장인 경우)New-New trade -> 회사의 생산성이 다르기 때문에 (국가가 아닌 회사의 관점으로 바라봄)기본적으로 Trade는 Autarky(No trade)상황에 비해 교역을 할 때 국가의 복지가 상승할 경우 하게 된다.2. 그렇다면 왜 관세나 다른 trade barrier들(수입량 할당, 수출보조금 등)을 쓸까? - 국가의 수입 상승 - 정치적 이.......

Lecture Note 3 수입할당 [내부링크]

1. 수입량제한? (= 수입할당)수입량 제한이란 수입될 제품에 대한 양을 제한하는 것이다. 진짜 말 그대로 수입량 제한이다.중요한 사실은, 국가는 세금 수입이 없다는 것이다.대신 quota license holder(보통 국내 회사 혹은 외국 정부)에게 돌아가게 된다.이런 추가수입을 Quota rent(할당지대)라고 부른다.2. 완전경쟁시장에서의 수입할당그래프 자체는 거의 똑같다고 보면 된다.똑같이 P가 상승하게 되고, 대신 오른쪽 그래프에서 강제로 M2로 수출량(수입량)이 조절이 되었다.그래서 P는 P_w가 아닌 P_2에서 형성이 되었다.b 그래프에서 공급곡선이 원래 수평이다가 M2지점에서 수직으로 바뀌게 된다.그리고 자유무역보다 높.......

Lecture Note 4 독점시장에서의 관세와 할당제 1 [내부링크]

1. 독점시장 속에서의 Tariff와 Quota의 차이이전 Lecture Note 3에서는 Efficiency cost과 ToT effects와의 관계에 대해서 살펴보았다.ToT effects가 Efficiency cost보다 크면 관세를 부과해도 Welfare이 상승할 수 있다.그렇다면 실제로 그래프를 그려가며 독점시장에서의 Tariffs와 Quota의 차이에 대해 알아보려고 한다.두 가지 상황을 가정한다. - 독점인 Home country가 small country일 경우이 경우는 tariff와 quota의 효과가 달리 나타나게 된다.(quota를 경매에 부치면 tariff와 quota는 같은 효과가 나타나는데, small country인 home이 독점인 경우에는 다르다!)- 독점인 Foreign country가 Home country의 수요를.......

Lecture Note 5 독점시장에서의 관세와 할당제 2 [내부링크]

1. 외국이 독점일 때는?이번 렉쳐노트에서는 불완전경쟁시장에서 관세정책이 어떤 효과를 나타내는지에 대해 알아보려고 한다.먼저 정답부터 말하자면, 자국이 대국일 때 관세정책을 펼쳤을 때 나타나는 기대효과와 비슷하다.아래는 외국이 독점일 때의 조건과 특징들을 나열한 것이다.- 외국 수출 기업은 독점이다. 그리고 Home은 small country이고, 시장 가격을 받아들인다.- large-country였을 때처럼 ToT의 증가로 후생이 증가할 수 있다.- 외국 기업은 수출시장과 수입시장 모두에서 독점이고, 유일하게 Home country에 상품을 수출하는 기업이다.- 자국 시장에서는 전혀 생산을 하지 않고 있다.- 생산이 증가해도 Marginal cost는.......

프로그래머스 레벨 1 통과..! [내부링크]

밤에 잠이 안와서 프로그래머스 테스트를 봤다.객체지향 프로그래밍을 다 까먹은 상태이고, 지금 듣고 있는 자료구조는 STL을 사용하지 않고 자체적으로 cpp, h파일을 만들어서 사용하기 때문에 검색과 기억에 의존해야 해서 조금 난감했다.하지만 다행히도 1단계..는 100점으로 통과했다. 일반인들에게는 거 1단계 통과해놓고 무슨 거창하게 글씩이나 쓰냐 싶겠지만 나는 매우매우 만족한다. (1단계도 너무 어려웠기 때문에...)분명 어렵지 않은 내용인데 내 실력 역시 걸음마 수준이었기 때문에 40분 제한시간에서 30분이나 썼다.2문제가 나왔는데, 1번 문제는 정말 쉬운 코드 문제여서 5분컷을 했는데, 2번째 문제가 은근 까다로웠다.......

친구의 질문으로 잠시 풀어본 객체지향 프로그래밍 Review3의 3번 문제 [내부링크]

그렇게 어렵지는 않은 문제였는데, 자료구조만 하다보니 객체지향 프로그래밍에서 쓰이던 여러 스킬들을 다 까먹어버렸다.. 그래서 그것들을 새로 익히는데 시간이 좀 걸렸다.virtual쓰는 가상함수, = 0 붙이는 순수 가상 함수, const는 오버라이딩 할때도 const 붙여야하는것, 오버라이딩 했다는 사실을 알려주는 override, 더이상 오버라이딩 안한다는 final, fstream을 이용한 입출력 모두 가물가물하거나 까먹어버려서 다시 검색해서 알아야 했다. 덕분에 기본 개념만 익히는데 1시간..겨우겨우 문제 이해하고 코드를 짜다보니 한국어가 제대로 출력이 안되서 멘붕.. 10분 검색해서 유니코드를 한국어로 바꿔서 해결리스트 동적할.......

파이썬의 비트연산과 보수계산, ~(not)계산 [내부링크]

본 내용는 어언 2년 전 2018년 2학년 때 논리회로 과목에서 공부했던 내용과 거의 일치한다.수업 들을때 이렇게 공부했으면 B+는 받았을텐데.. (B- 받고 재수강 엄두가 안나서 안고 갈 예정 ㅠㅠ)아무튼 컴퓨터, 혹은 컴퓨터와 비슷하게 논리회로를 사용하는 곳에서음수를 표현하는 방법에는 3가지가 있다!부호 절대값 방식, 그리고 보수!우선 보수의 개념은, 컴퓨터가 음수를 표현하기 위해 사용하는 것이다.컴퓨터는 멍청하기 때문에 0과 1밖에 모른다.그래서 -라는 기호를 쓸 수가 없다..간단하게 0000이라는 4bit짜리 메모리공간의 맨 앞자리를0이면 +, 1이면 -라고 하면 되지 않냐고 생각할 수 있는데(부호 절대값 방식) 부호 절대.......

IaC(Infrastructure as Code)가 도대체 뭘까? [내부링크]

수업을 들을 때까지 부끄럽지만 IaC라는 말은 들어본 적이 없었다.서버에 대한 지식이 전무했기 때문에 그다지 놀라운 일은 아니었지만..하지만 우리는 알게 모르게 IaC 환경속에서 코딩을 해왔을 지도 모른다.우리는 코딩할 때 이미 만들어져있는 환경 아래에서 편하게 C++. Python, JAVA등을 사용하곤 한다.하지만, 그런 환경조차 없다면? 참으로 곤란할 것이다.그 환경을 제어하려면?CPU를 메인보드에 끼우고, 램도 끼우고, 모니터도 연결해주고, 필요하면 그래픽 카드도 연결해주고.. (이하 생략)수동으로 모든 환경을 다 만들어야 할 것이다.CPU와 같은 중앙처리장치를 하나 더 쓰고 싶다면?위 작업을 한번 더 해야 한다.약간 과장해서.......

마이크로닉스 마닉 제로 기계식 키보드 구입기 [내부링크]

원래 멤브레인 키보드를 잘 쓰고 있었지만, 한번쯤 작업용으로 기계식 키보드를 써보고 싶은 생각이 있었는데 우연히 19900원이라는 저렴한 가격대의 적축 제품을 출시한다는 이야기를 듣고 예약구매를 하게 되었다.옥션에서 구매를 했고, 배송비는 별도로 부과되었지만 할인쿠폰과 쌓아둔 스마일캐시를 사용해서 조금 더 저렴하게 구매할 수 있었다.보다 자세한 이야기는 개봉하고 조금 더 써본 뒤에 여기 남길 예정이다!

프로젝트 폴더와 솔루션 폴더, LNK2019/LNK1120 에러 해결법 [내부링크]

작년 2학기 객체지향프로그래밍 시간을 통해 C++를 처음 접하고 널브러진 학점과 함께 멘탈이 바사삭했던 기억이 있는데, 자료구조를 통해 거의 9개월만에 C++와 다시 마주하게 되었다.시작부터 부딪힌 난관은, VScode가 너무나 어색했다. 한창 파이썬이랑 django만 만지작거리다보니 순식간에 머릿속에서 사라져버린 C++..아무튼 그걸 뒤로하고, 수업을 듣는 다른 2학년 친구들을 따라가기 위해서는 문과 출신에 비전공자 출신인 나로서는 시간을 좀 더 투자해서라도 아둥바둥대며 따라갈 필요가 있었다.원래는 더 일찍 포스팅하면서 복습을 할까 생각을 했는데, 맨날 놀다보니 시험기간이 벌써 1주와 2주 앞으로 다가와버려서 이제서야 남.......

ch1.1 Verification 과 Validation의 차이 [내부링크]

Program verification asks, "Are we doing the job right?"Program validation asks, "Are we doing the right job?"B.W. Boehn, Software Engineering Economics, 1981.한글로 표현하면 일을 올바르게 하고 있는가? 와 올바른 일을 하고 있는가? 정도로 차이를 나눌 수 있다.Verification – The software should comform to its specification.Validation – The software should do what the user really requires.좀 더 상세하게 뜻을 살펴보면Verification은 정해진 스펙대로 소프트웨어가 만들어 졌는가?(과정을 잘 지켰는가?) 이고Validation은 소프트웨어가 유저가 원하는 것을 반영했는가?(결과가 잘.......

ch2.1 데이터의 3가지 레벨(구조)과 4가지 기본 ADT 연산법 [내부링크]

두서 없이 바로 설명해보면, 데이터베이스(데이터)를 세 가지 단계로 나누면Application level(user level), Logical level(ADT level), Implementation level 세가지로 나눌 수 있다.인터넷에 찾아보니 View, Logical, Physical로 나누는 경우도 많아 보인다. 한국어로 바꾸고 스키마를 붙이면 외부스키마 개념스키마 내부스키마로 나눌 수 있다.데이터베이스를 구성하는 데이터 구조와 제약조건에 대한 명세(specification)를 구체적으로 기술한 것을 스키마(schema)라고 한다. (하지만 여기서는 내가 배운 대로 나열해 보려고 한다.)여기서 Application level은 logical data를 사용해서 특정 상황에서 실제 데이터를 모델링하는 것.......

ch2.2 상속과 다형성 [내부링크]

객체지향 프로그래밍에서 상속과 다형성은 빼놓고 설명할 수 없는 굉장히 중요한 개념이다.먼저 상속에 대해서 알아보자.상속은 이미 존재하는 클래스의 특징에 새로운 특징을 추가하여 새로운 클래스를 만들어 내는 것이라고 할 수 있다.Class들은 "is-a" 형식으로 계층이 나뉘어져서 상속이 된다. 화살표로 연결된다고 생각하면 될듯?!여기서 새로 만들어낸 클래스는 derived class, 원래 있던 클래스는 base class나 existing class라고 부른다.이를 통해 얻을 수 있는 효과는1. 상위 객체를 재사용할 수 있게 해준다2. 반복된 코드의 중복을 줄여준다3. 유지 보수를 편리하게 해 준다4. 객체의 다형성을 구현할.......

ch3.1 Unsorted List [내부링크]

UnsortedList는 말 그대로 정렬되지 않은 리스트를 뜻한다.그런데 이걸로 포스팅을 끝내자니 좀 아쉽잖아? 그러니 하나하나 파헤쳐보려고 한다.그럼 여기서 리스트는 뭘까?Linear relationship과 length, key를 가진 것을 뜻한다.Linear relationship는 자신 앞에 1개, 자신 뒤에 1개씩 자료가 존재하는 것이다 (물론 처음과 끝에서는 앞과 뒤의 자료가 존재하지 않는다)그림으로 이해하기 쉽게 그려보자면ㅇ-ㅇ-ㅇ-ㅇ-ㅇ (이건 리스트) ㅇ-ㅇㅇ-ㅇ< (이건 리스트가 아니다.) ㅇ-ㅇ이렇게 볼 수 있다.Length는, 리스트에 있는 아이템의 수를 말한다. 당연히 시간이 흐르면서 바뀔 수 있다.Key는 list의 논리적인 순서를 결정.......

ch3.2 Generic data type은 또 뭐야? [내부링크]

한창 실습을 하다가, ItemType이라는 자료형을 이용해서 데이터를 다루게 되었다.객체지향 프로그래밍 수업을 대충대충 듣다가 망해버린 나는 그냥 하라는 대로 했더니 되긴 되는데, 도대체 어떻게 이게 되는거지? 라는 생각을 가지게 되었다.ItemType이라는 타입은 int도 아니고 float도 아니고 string도 아닌데 도대체 어떻게 cout으로 출력시키지? 이거 연산자 오버로딩인가??? 하는 고민을 중간고사 직전까지도 했었는데알고보니 이건 Generic Data Type이라서 어떤 데이터 형식이라도 넣을 수 있게 해 놓은 것이었다.Generic Data Type우리가 이렇게 ADT로 설계하는 이유는,user level에 있는 사람과 logical level과 implementat.......

ch3.3 SortedList [내부링크]

UnsortedList와 SortedList의 가장 큰, 사실상 유일한 차이는 정렬이다.정렬을 해서 넣어야 하기 때문에 Insert할 때 정렬을 하는 노력이 필요하다.이렇게 한번 정렬을 해 놓으면 보기에도 편하고 찾기에도 도움이 된다.하지만 조삼모사 반대느낌이라, 결국 언젠가는 정리를 해야 찾기도 쉽다라는 이상한(?) 결론에 도달하고 말았다.세부적인 내부 메소드들은 UnsortedList와 동일하다.하지만 여기서는 이진 탐색이라는 개념이 나오는데,많은 사람들이 해봤을 그 병뚜껑 뒤에 숫자 맞추기 놀이에 정확히 들어맞는 그 개념이다.1부터 50까지의 수가 있다면, 단순히 1부터 50까지 순서대로 가는 것 보다1과 50의 중간지점인 25부터.......

ch3.4 BigO 표기법 [내부링크]

어떤 알고리즘이 가장 좋은 알고리즘일까?에 대한 고민으로부터 나오게 된 것이 바로 Big-O notation이다.효율성에 대한 지표로 실행시간, 코드의 수, 기본 연산이 얼마나 진행되는가? 등등을 고를 수 있는데,컴퓨터의 성능에 따라 실행시간이 다를 수도 있고, 코드가 짧아도 안좋은 알고리즘일 수도 있고, 연산 수행의 수도 정확하게 효율적인지를 나타내는 것은 무리일 수 있다.그래서 등장한 Big-O notation은 computing-time(수행시간)이 짧으면 짧을 수록(시간복잡도가 낮을수록) 좋은 알고리즘이라는 것을 나타내게 된다.Big-O notation에서는 다양한 법칙이 적용되는데, 그 중 가장 중요한 것이 계수와 상수 제거이다.이 부분은 나.......

퍼블릭, 프라이빗, 커뮤니티, 하이브리드?? 클라우드에도 종류가 있다!! [내부링크]

안녕하세요! IT분야에 애정을 가지고 공부하고 있는 Ssoco입니다!오늘은 저번 학기에 들었던 데이터센터프로그래밍 수업 내용을 바탕으로퍼블릭 클라우드, 하이브리드 클라우드, 커뮤니티 클라우드, 프라이빗 클라우드에 대해서 알아보려고 합니다.가장 먼저 클라우드가 무엇인지에 대해서 알아볼게요.클라우드(Cloud)는 구름입니다. 정말 쉬운 영어 단어라 모르시는 분은 거의 없을 거에요.클라우드 컴퓨팅(Cloud Computing)은 복잡한 네트워크 서버 구성같은 것을 알 필요 없이 구름처럼 내부가 보이지 않지만 어디서나 떠다니는 컴퓨터 자원을 이용해서 자기가 원하는 작업을 할 수 있는 시스템을 뜻합니다.인터넷만 연결되어있.......

SaaS, PaaS, IaaS? 어려워 보이지만 생각보다 간단한 클라우드 컴퓨팅의 서비스들! [내부링크]

안녕하세요! IT분야에 애정을 가지고 공부하고 있는 Ssoco입니다!오늘도 저번 학기에 들었던 데이터센터프로그래밍 수업 내용을 바탕으로클라우드 컴퓨팅의 서비스인 SaaS, PaaS, IaaS에 대해서 글을 적어보려고 합니다!클라우드 서비스가 무엇인지에 대해서는 저번 포스팅에 잘 작성해 두었으니 참고하시길 바랄게요!이렇게 인터넷을 이용해서 원격으로 클라우드 서비스를 이용할 수 있는데,어떤걸 얼마나 어떻게 가져오냐에 따라 3가지의 방식으로 클라우드 서비스를 나누곤 해요.바로 SaaS와 IaaS와 PaaS인데, 줄임말이다보니 한눈에 잘 들어오지는 않죠?이제 하나하나 풀어서 설명해드리도록 하겠습니다!SaaS(Software as a .......