코딩응애의 개발블로그

백준 17478번 본문

알고리즘 문제

백준 17478번

이너멜 2022. 8. 26. 09:28

나름 재귀를 이해했다고 생각하고 푼 문제인데 도무지 못풀겠어서 답을 봤음에도 불구하고 이해를 하는데 꽤나 오래 걸렸던 문제 

일단 코드부터 보자면 이렇다.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(__dirname + '/input.txt').toString().split('\n');

console.log('어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.');
function solution(n, el) {
    if (n === el) {
        console.log(`${'____'.repeat(el)}"재귀함수가 뭔가요?"
${'____'.repeat(el)}"재귀함수는 자기 자신을 호출하는 함수라네"
${'____'.repeat(el)}라고 답변하였지. `);
        return;
    }
    console.log(`${'____'.repeat(el)}"재귀함수가 뭔가요?"
${'____'.repeat(el)}"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.
${'____'.repeat(el)}마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.
${'____'.repeat(el)}그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."`);
    solution(n, el + 1);
    console.log(`${'____'.repeat(el)}라고 답변하였지. `);
}
solution(+input[0], 0);

처음에 구글에 검색해서 나온 블로그에 있는 답들을 보는데 하나같이 이해가 안가서 백준에 맞힌사람 코드를 보는데 거의 한 30개 정도 보다가 이건 좀 이해가 가서 이 코드로 이해를 하고 제출을 했는데 틀렸다고 나와서 왜지? 하고 자세히 보니 코드를 잘못써서 

다시 고친후 아 이러면 맞겠지 하고 다시 제출했는데 '출력 형식이 잘못되었습니다' 라고 나오는것이다 

이건 저번에도 한번 본 오류라 맨위에줄 trim()을 안써서 그런가 하고 써서 제출했는데 그래도 똑같은 오류길래 온갖 경우의 수를 다 썼는데 계속 틀렸습니다 아니면 저 오류가 나서 뭐가 다른걸까 하고 자세히 보니 

왼쪽이 정답으로 인정되는 코드의 출력문 오른쪽이 내가 쓴 '출력 형식이 잘못되었습니다' 나온는 코드 출력문

if (n === el) {
        console.log(`${'____'.repeat(el)}"재귀함수가 뭔가요?"
		${'____'.repeat(el)}"재귀함수는 자기 자신을 호출하는 함수라네"
		${'____'.repeat(el)}라고 답변하였지. `);
        return;
    } // 오류가 났었던 코드 
    
if (n === el) {
        console.log(`${'____'.repeat(el)}"재귀함수가 뭔가요?"
${'____'.repeat(el)}"재귀함수는 자기 자신을 호출하는 함수라네"
${'____'.repeat(el)}라고 답변하였지. `);
        return;
    } // 정답 코드 콘솔 들여쓰기 차이인걸 볼 수 있다

내 나름 보기 좋으라고 콘솔을 들여썼는데 이것때문에 계속 오류가 났었던 것이었다 그래서 정답 코드처럼 다시 콘솔창을 쓰니까 맞았다고 나옴 ㅋㅋ

재귀함수는 진짜 많이 풀어봐야 되는데 이런대서 시간 잡아먹으니 슬프다 아직 한참 멀었다 백준 단계별 파트 재귀문제 다풀면 뭘 풀지 고민이다 

'알고리즘 문제' 카테고리의 다른 글

백준 11729번  (0) 2022.08.29
백준 2447번  (0) 2022.08.27
백준 2941번 (for of 문)  (0) 2022.08.17
백준 4673번 풀면서 새롭게 알게된점  (0) 2022.08.06
왜 틀렸다는 걸까? 백준 2562번- (해결완료!!!)  (0) 2022.07.31
Comments