오늘도 열심히 따라하는 인프런 강좌!!
11장. 숫자의 총 개수 (small)
문제 요약 : 숫자 하나를 입력받는데 자릿수 하나하나까지 계산하면 숫자 몇개 쓰이는가??
나의 코드
1 |
|
Key Point! : 규칙을 찾아야 한다 (수식으로 그걸 정리해야 하는 문제)
12장. 숫자의 총 개수 (large)
위와 동일한 문제. 근데 여기서는 입력이 100,000,000까지 옴. (호달달..)
근데 생각한 코드 다른게 없음.. 똑같음.. 그래도 잘 움직이겠죠 님아 repl.it에서는 아주 빨리빨리 잘만 돌아감!!!
key point
선생님 코드도 뭐 나랑 또이또이 한거같음. ㅎ 근데 선생님 코드가 더 직관적인듯.
13장. 가장 많이 사용된 자릿수
요약 : n자리의 자연수가 입력되면 입력된 자연수의 자릿수 중 가장 많이 사용된 숫자를 출력하는 프로그램을 작성하세요
1 |
|
내 코드가 잘못되었었다… 선생님 코드가 맞음. 여기서 max값은 인덱스랑 그 반복된 값이랑 구분해서 사용을 해줘야했다.
1 |
|
아 머야 맞는건가? 변수를 그냥 max라고 해놓으니 이게 값인지 index인지 헷갈린다. 제대로!!하기!!!
Key Point : 글쎄.. 배열로 생각하기?!
14장. 뒤집은 소수
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요. 예를들어 32를 뒤집으면 23이고, 23은 소수다. 뒤집는 함수인 int reverse(int x)와 소수인자를 확인하는 함수 bool isPrime(int x)를 반드시 작성하여 프로그래밍한다.
1 |
|
Key Point : string의 reverse 함수! (얘는 헤더파일 algorithm이 필요하다)
reverse(str.begin(), str.end())
을 사용하면 왕빨라진다.
근데 선생님은 c로 풀어서 그런지 다르게 int reverse(int x)
함수를 사용하셨는데, 내용은 아래와 같다.
1 |
|
선생님의 isPrime
함수도 아래와 같다.
1 |
|
15. 소수의 개수
자연수 n이 입력되면 1부터 n가지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다. 제한시간은 1초
1 |
|
Key Point : 런타임에러 나니까 소수 구할때 배열로 생각해서 해야함!! 배수를 ~~ 해주는 것이 좋다.
선생님 코드는.. 뭔가 신기한데 사실 아직 이해하지 못했다.
선생님 코드는 아래와 같다.
1 |
|
Key Point! :
Flag
를 사용!!
여기서 j * j <= i
이부분을 이해하질 못하겠다.. 하지만 그냥 포기함. ㅎ