boj 16120번 문제를 주단위 시험에서 시험 문제로 제시받았는데, 분명 머리속에서는 어떤 식으로 풀어야 하는지 파악을 했는데, 이걸 string으로 받았을때 과연 원소별 접근을 위해서 어떻게 표현하고, 그리고 전체 글자에 대한 반복문을 사용하기 위해 끝자리를 어떻게 결정할지에 대해서 명확하게 시험 시간에 생각이 나지 않아서 문제를 풀지 못하였다.
그렇지만 그래도 그동안 보아왔던게 있어서 머리속에서 어떠한 형태로 코드를 구성하면 되겠다는 생각이 들어서 현재까지의 공부 방법이 잘못된건 아니라는 생각이 들었다. 그러니까 이제부터 다시 차근차근 현재 방법으로 밀어붙여보도록 하자.

일단 gpt를 활용하여서 알게 된 접근 방법에는 string으로 받아서 그걸 str.size(); 함수를 활용하여서 사이즈가 몇인지를 알아내고, 그리고 그걸 활용해서 for문에서 반복횟수를 설정하는 방법을 알게 되었고, 이게 내가 시험 시간 내에서 필요로 하던 부분이었다.
이런식으로, .string으로 받게 되고 그리고 반복문이나 혹은 원소별로 접근하는데 있어서 사용할 수 있는건
string.size(); 사이즈 함수 라는걸 이런 문제를 다시 만나게 되면 꼭 떠올려보도록 하자.

위와 같은 내용은 gpt상에 물어본 size()함수에 대한 내용이다.
usigned int를 반환한다는걸 명심하고, 컨테이너에 저장된 원소의 개수를 반환한다는걸 주의하자.
개수다 개수.
+++++++++++++++++++++++++
추가적으로 다른 사람의 코드를 확인해보다가 string.legnth(); 를 활용하는 것에 대해서 보게 되었다.
그래서 이에 관해서 gpt에 질문을 하여서 차이점에 대해서 알아보았다.

결국에는 내가 주로 제출하게 될 gcc 컴파일러에서는 차이가 없다.

이런식으로, string.size(); 위치에 똑같이 string.length(); 를 넣어서 코드를 작성하면 모두 똑같이 동작한다.
두가지 방법에 대해서 기억을 하기 위해서 노력해보자.
string 형태로 입력을 받아서 각각의 원소에 접근할것인데, 개별원소를 순차적으로 증가시키면서, for문을 돌아야 한다면
string.length(); 혹은 string.size();
일단은 기본적으로 size();가 혹시나 모를 컴파일러상의 차이점에 대비해서 확실하게 들어맞는 방법일테니까
string.size();를 활용하도록 하자.
'알고리즘 > BOJ' 카테고리의 다른 글
| c++ 메모리 초과가 떠서 int를 몇개를 잡으면 128mb가 넘나 알아보았다. (0) | 2023.04.21 |
|---|---|
| c++ 아주 큰 수를 다룰 경우 __int128에 대하여. (0) | 2023.04.21 |
| tie()를 활용해 튜플을 만들고 그 튜플속 각각의 원소에 할당하는 방법. (0) | 2023.04.18 |
| c++ -1이 포함된 형태의 cin에서 char로 받는것의 부적절성에 관하여. (0) | 2023.04.18 |
| c++ cin을 이용해서 공백없이 쭉 이어서 주어진 행렬형태 입력받기. (0) | 2023.04.18 |
