인프런 커뮤니티 질문&답변

jjune0427님의 프로필 이미지
jjune0427

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-P

3-P 질문 있습니다!

해결된 질문

작성

·

146

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

http://boj.kr/e5455ffb96284f2d983e2afeae83ec1c

 

선생님이랑 비슷하게 문제를 풀었습니다.

하지만 궁금한 부분이 있어서 질문드립니다.

선생님께선 flower부분에 이중 for문을 돌리실 때 i, j =0으로 하셨는데 제 코드의 go함수를 봐주시면 sy, sx를 사용했고 sx가 for문을 벗어나면 sx=1로 초기화해서 i++이 되어도 첫칸부터 탐색할 수 있도록 하였습니다.

 

이렇게 작성한 이유가 i,j를 0으로 설정해서 탐색을 하면 탐색을 했던 부분을 또 탐색을 해서 시간초과가 나오지 않을까 생각했기 때문입니다.

 

혹시 다른 문제가 나와도 현재 제가 올린 코드처럼 sy, sx를 사용해서 코드를 짜도 큰 문제가 없을지 궁금합니다.

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

void go(int sy, int sx)
{
	if (price.size() == 3) {
		int a = 0;
		for (auto i : price) {
			a += i;
		}

		minR = min(minR, a);

		return;
	}

	for (int i = sy; i <= n; i++) {
		for (int j = sx; j <= n; j++) {

네 괜찮은 생각입니다. ㅎㅎ

어차피 sy, sx전에 꽃을 심는 수를 시도해보는 것이 자명하기 때문에 빠지는 경우의 수도 없네요. ㅎㅎ

 

혹시 다른 문제가 나와도 현재 제가 올린 코드처럼 sy, sx를 사용해서 코드를 짜도 큰 문제가 없을지 궁금합니다.

>> 이와 유사한 문제라면 이렇게 시도해보는 것도 좋을 것 같습니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


 

jjune0427님의 프로필 이미지
jjune0427

작성한 질문수

질문하기