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

밍링님의 프로필 이미지
밍링

작성한 질문수

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

4-H

4-H 코드 한 번 봐주실 수 있으신가요?ㅎㅎ

해결된 질문

작성

·

119

0

안녕하세요 큰돌선생님! 늘 제가 먼저 해보고 선생님 코드를 보는데, 제 코드랑 달리 선생님 코드는 너무 깔끔해서 항상 감동합니다.. 늘 감사합니다

다름이 아니라,
http://boj.kr/3f2dfd5dd72a45e69326ea4b3d0e2216

저는 이 문제에서 마지막 벽 하나 없애는 부분을 비트마스킹으로 경우의 수를 만들어서 싹 돌려줬는데요..
5중 for문..ㅋㅋ으로 시간초과 뜰줄 알았으나 다행히(?) 맞았습니다가 뜨긴했는데 불안해서요.. 이런식으로 짜는 건 많이 비추하시나요?ㅠㅠ 실제 코테였다면 이렇게 하는게 위험한 방법인지 궁금해서 한 번 질문드려요!!

좋은 하루 보내세요!!

답변 1

0

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

안녕하세요 밍링님 ㅎㅎ

	for(int i=0; i<M; i++){
		for(int j=0; j<N; j++){
			for(int k=0; k<4; k++){
				memset(visited, 0, sizeof(visited));
				int tmp = arr[i][j];
				arr[i][j] &= ~(1<<k); 
				for(int a=0; a<M; a++){
					for(int b=0; b<N; b++){

벽을 하나 없애고 -> 다시 원복 하면서 탐색한다를 잘 하신 것 같습니다. i, j, k, a, b, 이렇게 변수를 실수 없이 하신점도 좋습니다.

괜찮은 코드라고 생각합니다. 조금은 투박하지만 실수만 안한다면 괜찮습니다. 그러나 제 해설코드처럼 roomSize로 캐싱걸어서 하는 것도 공부하셔야 해요 ㅎㅎ

 

실제 코테였다면 이렇게 하는게 위험한 방법인지 궁금해서 한 번 질문드려요!!

>> 위험하지는 않습니다. 코테를 풀 때 중요한 점은 실수 없이 맞추는 것입니다. 그 때 무슨 엄청난 효율을 자랑하는 코드를 한번에 작성할거라고는 생각하지 말아야 합니다. 일단은 맞추고 -> 시간남으면 효율적으로 수정하는 식으로 가야합니다.



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

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

감사합니다.

강사 큰돌 올림.


밍링님의 프로필 이미지
밍링
질문자

오오 감사합니다 선생님! 오늘 roomSize 캐싱도 다시 제대로 공부하겠습니다!

밍링님의 프로필 이미지
밍링

작성한 질문수

질문하기