https://www.acmicpc.net/problem/13241
https://www.acmicpc.net/problem/2485
https://www.acmicpc.net/problem/1735
최소공배수, 최대공약수와 관련된 문제를 풀게 되었는데
유클리드 호제법으로 2개를 수학 공식으로 풀 수 있다는
것을 최근에 알게 되어 아직 익숙하지 않은 듯 하다.
유클리드 호제법에 대해 정리해보면서 복습하자!
어쩌다보니 2개의 코테를 한 번에 보게 되었다.
첫번째 코테는 알고리즘과 자료구조를 잘 다루어 풀어야 하는
전형적인 코딩테스트 형식이었고
두번째 코테는 JS 를 통해 비슷하게 알고리즘과 자료구조 문제가 있었지만
자료를 받아서 적절하게 처리하는 작업과 리팩토링이나 비동기와 같은
실무에서의 백엔드를 위한 능력을 보는 듯 했다.
2개 모두 제대로 풀지 못했다...
첫번째 코테는 어떻게 풀어야할지 아이디어는 몇 개 떠오르지만
어떻게 구현할 수 있을지를 몰랐고 시간초과를 막기 위해
고려해야 될 알고리즘과 방법들을 더 철저히 그리고 열심히 공부할 필요가 있다고 느꼈다
또한 바로 문제를 구현하려고 하지 말고
문제의 조건과 제한 사항을 잘 참고하여 어떻게 입력에서 결과로 도달할 수 있는지
그려본 후 그에 맞게 구현을 시작해야 보다 정확하게 풀 수 있는 것 같다...
그냥 계속! 꾸준히! 열심히! 하자!!!
https://www.acmicpc.net/problem/13909
주어진 범위 내의 약수가 홀수인 숫자의 개수를 구해야한다.
약수가 홀수로 존재하기 위해서는 해당 숫자가 제곱수이어야 한다.
따라서 범위 안의 제곱수를 구하기 위해서는
i * i <= N 인지를 확인하면 된다.
#include <iostream>
using namespace std;
int main()
{
int N;
int cnt = 0;
cin >> N;
for (int i = 1; i * i <= N; i++)
{
cnt++;
}
cout << cnt;
return 0;
}