profile
amazing idiot
post-thumbnail

SW사관학교 정글7기 개발일지 (09/02)

gdb로 알아보는 포인터 교실 포인터란 대체 무엇일까? 포인터를 공부하다 보면 '무엇을 가르키는 변수' 라는 표현을 자주듣는다. 나는 이러한 표현을 좋아하지 않는데, 무엇을 가르킨다고 해서 특별한 취급을 받는것처럼 보이지만 실로는 그렇지 않다고 생각하기 때문이다. 어디까지나 특수한 목적을 위해 사용되는 '변수'일 뿐이지, 결국 '변수'라는 본질에서 벗어나지는 않는다고 생각한다. 따라서 이를 보여주기 위해서 간단한 프로그램을 작성하고 결과를 보이려고 한다. 디버깅 준비 사용한 소스코드 hello.c 해당 코드는 char배열, int, int *포인터 세가지의 변수를 선언하고 내용을 출력하는 코드이다. 컴파일에 사용한 명령어 gcc -g -m32 hello.c -fno-stack-protector -z execstack -o test canary, ASLR을 해제해야만 분석이 용이하다. 추가로 -g 옵션을 통해 디버깅 정

2023년 9월 2일
·
1개의 댓글
·

[프로그래머스] 뒤에 있는 큰 수 찾기

접근 방법 numbers의 길이가 최대 1,000,000 이므로 O(NxN)은 너무 오래걸린다. 실제로 수행해보니 시간초과가 났다. (7.4초도 통과인데...) 뒷 큰수가 나오기 전까지는 이전의 숫자들이 내림차순 혹은 같은 숫자다 탐색중인 숫자가 바로 전 숫자의 뒷큰수가 될 경우 그 이전의 숫자의 뒷큰수가 될 가능성이 있다 구현 후기 뒷큰수를 발견하기 전까지 이전의 숫자들은 내림차순이 된다는걸 응용해서 stack에 모아두고 하나씩 비교한다는 발상 자체가 대단하다고 생각했다. 난 해봐야 뒤에서 부터 탐색해서 stack에 차곡차곡 넣고 한번에 반환하면 되겠다 했는데 바로 시간초과 컷!

2023년 3월 20일
·
0개의 댓글
·

[프로그래머스] 개인정보 수집 유효기간

요약 및 과정 요약 string을 분리하기 위해 spiit 함수를 구현 만료되었는지를 판단하기 위한 expired 함수 구현 만료날짜를 구하기 위한 getEndDate 구현 과정 split 함수를 구현해 delemiter에 따라 분리시키도록함 사칙연산을 수월하게 하기위해 applyStoi 함수를 만들어 간편하게 변환시킬 수 있도록 했다. compare 함수 정의를 통해 max 함수를 사용해서 간단히 비교할 수 있도록 했다. operator overload를 활용하면 더 간결하게 가능할 것으로 예상한다. map을 활용해서 약관의 타입별로 유효기간이 몇인지 바로 얻어서 활용할 수 있도록 했다. 구현 후기 compare를 활용하는 방법이 익숙해지고 있어서 만족스럽다. applyStoi 함수를 초기에 선언하지 않았는데 단순한 실수이다. 년도, 월, 일을 모두 일(date)로 통합해

2023년 3월 19일
·
0개의 댓글
·

상수 사이에 따옴표

int t = 1'000'000; 상수 사이에 따옴표가 들어간다. 따옴표는 char 타입 문자를 표현할때나 쓰는거 아닌가? 이상해보인다. 하지만 동작한다 C++14 표준에서 해당방식으로 사용할 수 있다고 한다. 세상은 넓다.. 갑자기 선택과 집중이 중요하다는 생각이 든다 . 이런 중요한 정보들을 얻는데도 시간과 노력이 필요한데 SNS돌아다니는 데는 시간이 얼마나 아까울까 출처: https://stackoverflow.com/questions/38987621/any-way-to-format-large-numbers-in-code-to-make-easier-to-read

2022년 3월 10일
·
0개의 댓글
·