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

starkshn님의 프로필 이미지
starkshn

작성한 질문수

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

3-P

3-P 질문입니다.

작성

·

246

0

http://boj.kr/29cf5d9bfcf64cdaa6e347953dce96da

코드 설명부분은 주석달아 두었습니다.. 벡트렉킹으로 풀었는데

이상한 데이터 넣어보고 다른 TC들 혼자서 테스트 해보았는데 답은 잘나오는데 백준에서는 틀렷다고 합니다ㅠㅠ

어디서 틀린것인가요..??

답변 1

1

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

안녕하세요 stark님 ㅎㅎ

전반적으로 잘 짜셨네요. ㅎㅎ

지적할게 좀 있는데요.

굳이 visited외의 flowvisited를 쓸 이유가 있을까요? 이 배열을 기반하여 로직은 괜찮습니다만 애초에 이건 불필요한 배열인 거 같아요.

void SeedFlower(int y, int x)
{
    FlowerVisited[y][x] = 1;

 

이거 잠깐 볼게요.

        if (CanGo(ny, nx) == false) continue;

        // 2. 갈 수 있다면 방문한 곳인지 확인
        if (visited[ny][nx]) continue;

이 로직 다음에

        // 꽃을심을 수 없는 경우, 이동
        if (CanSeed(ny, nx) == false)

이런 식으로 꽃 심을 수 있냐로 판단하죠?

ny, nx로 차근차근 들어가는 거 좋습니다.

다만...

이런 경우는 처리가 안 될 거같아요.

image이 경우 파란색 꽃의 경우 심을 수 있는데도 불구하고 visited로 방문한 정점이라 심을 수 없다고 판단되지 않을까요??

 

감사합니다.

starkshn님의 프로필 이미지
starkshn
질문자

항상 답변 감사합니다ㅎㅎ

starkshn님의 프로필 이미지
starkshn

작성한 질문수

질문하기