전체 글

전체 글

    19.10.20(C++ 스택, string 입력 받기)

    프로그래머스에서 dp dfs bfs 부분을 시작하려다 일단 다른 것 기초부터 하자해서 백준 스택 부분에 들어갔다. 굳이 직접 구현 안해주고 C++ 의 STL 을 사용하기로 했다. #include 을 인클루드 해준다. - stack stack 으로 스택을 만들고 - stack.push(데이터)로 추가하고자 하는 데이터를 입력합니다. - stack.size() 는 현재 스택에 저장되어있는 데이터의 갯수를 반환합니다. - stack.top()은 현재 스택 최상위의 데이터를 가져옵니다 (빼내는 것은 아니에요) - stack.pop()은 현재 스택 최상위의 데이터를 제거합니다. - stack.empty() 는 현재 스택이 비었으면 true, 아니면 false를 반환합니다. 출처 : https://m.blog.na..

    19.10.19(boj1541)

    c++에서 int를 전역변수로 초기화를 안하면 0으로 자동초기화를 해준다는 것을 알았다.(표준에서는 말이다. 0의 초기화가 보장이 안된다는 말도 있으니 따로 초기화 해주는게 나아보인다.) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ boj 1541 #include int sum, tmp, f, n; char s[55] = { 1 }; int main() { scanf("%s", s + 1); for (int i = 1; s[i - 1]; i++) { if ('0'

    19.10.18(char 배열에 대해서)

    앞서서 char 배열 널 값 초기화 할 때에 만약 char str[5]="1234"; ( 12345 넣으면 안된다. 널 값이 들어갈 1자리는 비워둬야 된다.) 이렇게 되어있었다고 치자, 여기서 strlen(str) 하면 4가 나올 것이다. str[0]='\0' 하면 str의 첫 부분이 널값으로 취급하여서 모두 다 널 값 초기화가 되는 줄 알았다. 실제로 strlen(str)를 하면 0이 나온다. 그런데 만약 이 부분은 str[0]='5' 로 바꾸면 다시 strlen(str)은 1이 아니라 4가 나오게 될 것이다. 디버깅 해서 보았더니 str[0]='\0'를 하면 모두 널이 되는 것이 아니라 str[0]의 위치만 임시방편으로 널 값이 되어있었다. 이 부분을 풀어주니 str 1,2,3 부분은 다시 각각 "2..

    19.10.16 (boj2217, char배열 널 값 초기화)

    boj2217 말고도 푼 문제가 몇 있긴한데 boj2217은 문제부터 제대로 이해를 하지 못했다. 나는 당연히 가장 낮은 하중을 가지고 있는 로프의 값보다 높으면 그 로프가 끊어져 들 수 없다고 생각했는데, 만약 10, 15, 40 이라고 쳤을 때에, 나는 당연히 10*3 이라고 생각하였다. 하지만 모든 로프트를 사용할 필요가 없다는 것이다. 10*3의 접근은 맞는데 이 경우엔 30kg 를 들게되고, 40kg 밧줄 하나면 40kg 들게 된다. 15,40 이라 쳤을 때에는 15*2 해서 30kg 이다. 이런 내가 문제 이해를 잘 하지 못하였다... ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ char str[10]; scanf("%s", str); printf(..