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

신동하님의 프로필 이미지
신동하

작성한 질문수

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

3-O

시간초과가 나옵니다

작성

·

238

0

안녕하세요 좋은 강의 감사합니다.

저는 _mp[세로줄][점선] 이렇게 생각해서 구현했습니다.

비정상.jpg문제에서 나온것과는 다르게 사다리가 놓을수 있는 곳을 세로로 생각해서 코드를 짰습니다. 그래서 UP DOWN이 있습니다.

구현과정에서 인덱스는 0부터 시작하도록 설정했습니다.

http://boj.kr/a4dda6bde3c04184b402349de75eefbc

시간초과가 나서 수정해보다가 안되서 질문올립니다. 감사합니다.

답변 1

1

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

안녕하세요 동하님 ㅎㅎ

이 코드요. 지금 보시면 해당 부분 사다리 놓을 수 있으면 aa + 1하고 그러다가 aa = 0, b + 1이렇게 해서 점진적으로 증가시키면서 사다리를 놓잖아요.

    
    if(Check(aa, bb)){
        _mp[bb][aa] = DOWN;
        _mp[bb+1][aa] = UP; 
        Test(now_line);
        Solve(aa + 1, bb, now_line + 1);
        _mp[bb][aa] = NO;
        _mp[bb+1][aa] = NO;

 

근데 앞의 코드는 이런 경우의 수는 파악하지 못하는거 아닌가요?

예를 들어

1 3 5 을 사다리를 놓을 수 있다고 치면

1 3 6 이런거는 체크못하는거 아닌가요?

 

감사합니다.

신동하님의 프로필 이미지
신동하

작성한 질문수

질문하기