2023. 3. 24. 19:21, 알고리즘/BOJ

이런 코드를 작성했을때 결과물을 보면,

결과물을 보면 a에서 다룬 j를 이어받아서 b에서 연속적으로 숫자가 증가되어 가는걸 볼 수 있다.
이 문제의 경우 이러한 풀이를 사용하여서 문제를 풀어도 되기 때문에 이런식으로 for문 두개를 사용할때
하나의 int j로 반복문을 컨트롤해서 문제를 해결했다.
그런데

이 나무 모양으로 별찍기 문제는, 그런식으로 코드를 작성해서 결과물을 살펴보면,

이렇게 잘못된 결과물을 나타낸다.
결국에는 이 문제는 그런식으로 하나의 이어져있는 int j를 통해서 문제를 풀면 안되기 때문에 둘다 for문 속에서 새롭게 정의를 해서 반복문을 컨트롤해 주어야 하는것이다.

이렇게.
이렇듯, 별찍기 같은 형태의 문제를 만났을때, 모든 유형이 전부 for문이 두개 있을때, 그 for문을 컨트롤 하는 int를 하나로통일해서 사용할 수 있는게 아니다. 문제의 유형에 따라서 달라진다.
그렇기 때문에 습관적으로 그렇게 문제를 풀려고 하면 안되고, 이 케이스가 하나로 표현을 할 수 있는 문제인지,
아니면 두개를 따로따로 설정해서 문제를 풀어야 하는지에 대해서 잘 파악하고 난뒤에 문제를 풀도록 하자.
생각을 해야한다 생각을.
'알고리즘 > BOJ' 카테고리의 다른 글
| 0x03강 배열. 출력문 맨 마지막에 \n을 하지 않아서 틀린 문제. 그리고 그 풀이에 유용한 c++문접까지. (0) | 2023.04.06 |
|---|---|
| 0x02강 기초코드작성요령2. max_element(a,a+9)을 활용한 원하는 위치의 배열의 인덱스 원소 출력 방법. (0) | 2023.03.25 |
| 0x02강 기초코드작성요령2. 원소들을 뒤집을때, STL reverse 함수를 사용할 수 있다. (0) | 2023.03.24 |
| 0x02강-기초코드작성요령2. 비트연산자 &를 활용한 홀수의 판정 표기법. (0) | 2023.03.22 |
| 0x02강-기초코드작성요령2. cout<<'-1';을 주의하도록 하자. (0) | 2023.03.22 |
Comments, Trackbacks
