분류 전체보기337 stack, queue 사용 시 size()를 꼭 써줘야한다 stack 이 비었을 시 top, bottom은 -1이고, pop의 경우는 사용을 못하므로 항상 stack을 사용할때에는 스택이름.size() 를 통해서 스택의 크기를 확인 후 참조하도록 한다 따라서, 조건문 등에서 stack의 사이즈를 모르는데 bottom, top이나 pop 등을 사용하면 안된다 꼭 다음과 같이 사이즈를 적어서 사용하자 if( 스택이름.size() && 조건1) // 스택의 사이즈가 0이하면 false이므로 스택이 비지 않았을떄만 구현하게 한다 같은 원리로 queue 도 사용 시 사이즈를 체크하고 사용해야만 한다 2022. 6. 16. [c++] 문자열 형변환 atoi, stoi, c_str, isdigit "이런" rvalue 상태인 문자열를 숫자로 atoi() 'a' to int 문자열을 문자로 c_str() str()을 char로 문자열을 숫자로 stoi() string to int 숫자인지 확인 isdigit() true / false 리턴 atoi() 와 c_str(), stoi() : 모두 데이터의 형변환에 쓰인다 변환 전 후, 우리가 인식하는 데이터의 값은 같다. 물론 컴퓨터나 프로그램에는 중요하고 필요한 차이다 atoi() : char형을 인자로 받아 int형으로 바꿔준다. 숫자가 아닌 문자나 다른 것일 경우, 변환에 실패하고, 0을 리턴한다. 정상작동 결과인 숫자 0인지 실패 결과인 boolean 값 0인지를 구분하기 위해서 isdigit을 사용하여 숫자여부를 판별가능하다 stoi() : 문.. 2022. 6. 16. 백준 1213/c++ )) 팰린드롬 만들기 아스키 코드 범위 이상(127개 이상)의 배열 cnt[200] 을 만들고 입력한 문자열 s를 돌며 각 문자를 반복자가 가리킬때마다 cnt[가리킨 문자의 아스키코드 넘버]의 값을 1씩 더해주어 s의 문자별 개수 데이터를 저장한다 알파벳 뒤부터 안으로 가야하므로 Z부터 A까지 하나씩 빼며 더하여 수행한다 홀수 개수를 갖는 문자가 하나면 mid 를 만들어주고 홀수 개수를 갖는 문자가 2개 이상이면 탈출한다 빈 결과문부터 시작해서 양옆에 문자를 하나씩 붙여서 만들어주고 홀수개수 문자가 딱 하나 있어서 mid 가 있다면 결과문 시작부터 결과문 길이 반만큼의 위치에 mid를 삽입한다 홀수 개수를 갖는 문자가 2개 이상이면 실패문구를 출력하고, 그 외에는 정상 결과문을 출력한다 어려웠던 점 아스키 코드 비교를 위해 .. 2022. 6. 15. [c++] 배열 한번에 초기화 하는법, fill 배열 전체의 요소를 모두 0으로 초기화 할때는 아래 3가지 방법이 있다 arr[100] = {} arr[100] = {0} // 0의 경우만 전체 0으로 초기화가 적용된다. {-1} 의 경우 첫 요소만 -1 로 입력 되고 나머지는 0으로 된다 arr[100] = {0, } 위의 두번째와 마찬가지로, {} 안에 0 외에 {3}과 같이 다른 수를 넣으면 첫 요소만 그 수의 값을 가지고, 나머지 요소는 0이 된다. 또한 arr[100] = {3, 4} 라고 입력 시, arr[0]=3, arr[1]=4 로 들어가고 입력안한 인덱스 2 이상은 모두 0으로 초기화된다 지역변수로 배열을 선언할 경우 항상 직접 초기화를 해줘야 한다 전역변수는 따로 초기화를 하지 않아도 배열 전체가 0으로 초기화 된다 fill 함수를 .. 2022. 6. 15. 이전 1 ··· 63 64 65 66 67 68 69 ··· 85 다음