ab0061   2년 전

11, 111, 1111일 때는 예외로 잡아서 1이 출력되게 만들어줬고 나머지는 반복문 돌려서 계산했습니다.

33퍼센트에서 틀렸다고 뜨는데, 뭐가 틀린 건지는 잘 모르겠어서 부탁드리겠습니다.

wizardrabbit   2년 전

안녕하세요!

사소한 실수만 고쳐주시면 맞을 수 있을 거에요!

● 여러 개의 데이터를 출력할 때에는 데이터를 출력할 때마다 줄을 바꿔서 출력해야 합니다.

입력:
3
7
9901

정답:
3
6
12

출력:
3612

ab0061   2년 전

@wizardrabbit

안녕하세요

아 진짜 감사합니다 ㅠㅠ.. 숫자만 하염없이 넣어보고 있었네요 덕분에 한 문제 맞췄습니다.

wizardrabbit   2년 전

추가: 11, 111, 1111이 입력으로 주어졌을 때 1을 출력하는 것은 틀린 방법입니다.

출력해야 하는 것은 'n의 배수 중 1로 이루어진 수의 자리수' 입니다.

그렇기 때문에 올바른 출력은 아래와 같습니다:

입력: 11
정답: 2

입력: 111
정답: 3

입력: 1111
정답: 4

11, 111, 1111은 자기 자신 자체를 배수로 가지므로, 해당하는 배수의 자릿수의 개수를 출력해야 합니다.

그래서 11의 배수인 11은 두 자리이므로 2가 출력되는 것입니다.

다만 13번째 줄에 "1" 을 출력하는 코드를 "928347822" 같은 의미 없는 수로 바꿔도 정답 처리를 받는 것으로 봐서는 입력이 11, 111, 1111로 주어지는 데이터가 없어서 정답을 받은 것입니다.

ab0061   2년 전

@wizardrabbit

아 그렇네요 자릿수를 출력하는 건데 제가 고치다가 엄한 걸 고쳤네요.. 감사합니다.


근데 질문 하나만 드려도 될까요? 


제가 유튜브에 두들낙서의 c/c++ 강의를 들으면서 c언어를 일단 공부하는 중인데요, 현재 함수 만드는 부분까지 왔습니다.

여태는 for를 배우면 새로 풀 수 있는 문제가 생기고, if를 배우면 새로 풀 수 있는 문제가 생겨서 재밌었습니다.

근데 포인터 쯤부터 문제에 써먹는 방법이 떠오르지 않아서 강의에 흥미를 잃고 문제만 계속 for, if 등등만 사용해서 문제를 풀고 있습니다.

점점 더 어려운 문제를 풀고 골드, 플레티넘에 가는게 제 소망인데요, 

일단 강의를 다 듣는게 맞는 일일까요?

아니면

문제를 풀다가 막히면 질문하고 검색하면서 문제만 푸는게 맞는 일일까요?

혹시 이런 댓글이 문제가 된다면 사과드리고 바로 지우갰습니다..!

감사합니다

wizardrabbit   2년 전

죄송합니다. 제가 문제풀이를 할 때 C를 사용해 문제를 푼 경우가 거의 없어서, 명확한 답변을 드리기는 힘들 것 같습니다. 저는 주로 자바스크립트와 파이썬을 이용해서 문제를 풉니다.

다만 C++는 사용하는 제 입장에서는, 문제를 풀 때 포인터를 사용하는 경우는 거의 없었습니다. 그 대신 함수를 이용할 때 참조를 사용하는 경우는 가끔 있었습니다(Call by Reference).

C/C++로 문제를 푼 다른 분들의 코드를 보면, 포인터를 사용해서 문제를 푸신 분도 보이고 그렇지 않은 분도 보입니다. 포인터를 모른다고 해서 그 문제를 무조건 풀 수 없는 경우는 많지 않다고 봅니다. 얼마든지 다른 방법으로 구현할 수 있는 방법이 있거든요.

하지만 그와 별개로 포인터는 컴퓨터 프로그래밍과 구조를 이해하는 데 기본적이고, 중요한 지식이며, 더 효율적인 코드를 짜기 위해 사용하실 수 있으므로 알고리즘 문제에서 포인터를 자주 사용하시든, 그렇지 않으시든 배우는 것은 당연히 중요할 수밖에 없습니다.

올려주신 댓글은 C를 사용하는 많은 분들이 보실 수 있도록 새로 글을 써 주시면 똑똑하신 분들이 많이 댓글 달아 주실거라 생각합니다.

ab0061   2년 전

@wizardrabbit


댓글 감사합니다.


포인터 뿐만이 아니라 개념을 먼저 싹 다 배우고 문제를 푸는게 맞는 건지, 문제를 풀고 모르는 문제는 질문을 하면서 개념을 익히는 것이 맞는지 궁금해서 여쭤봤습니다!

새로 글 써보겠습니다. 

감사합니다!!

댓글을 작성하려면 로그인해야 합니다.