[백준] 1978번 : 소수 찾기 (C++)
문제 풀이 int 변수 N, num, decimal(소수의 개수), count(0이라면 소수X, 아니라면 소수O)를 선언했다. 소수는 1과 자기자신으로 나누었을 때만 나머지가 0이 된다. 반대로, 소수가 아닌 경우에는 1과 자기 자신 사이의 수로 나누면 나머지가 0이 되는 것을 이용했다. 아래의 코드와 같이, 소수가 아니라면 count++를 하였다. for문을 빠져나왔을 때 count == 0이라면 소수이므로 소수의 개수를 의미하는 변수인 decimal을 증가시켰다. 예를 들어, num = 9, j = 3이라면, 9 % 3 = 0이다. 이는 소수가 아니므로 count를 증가시킨다. for문을 빠져나오면 count == 0인지 확인하는 if문을 통해, 소수라면 변수 decimal을 증가시킨다. for (i..
2024. 2. 21.
[백준] 10250번 : ACM 호텔 (C++) + 반례 및 그림 설명
문제 풀이 각각 호텔의 층 수, 각 층의 방 수, 몇 번째 손님을 H, W, N으로 입력받는다. 이때, 기본적인 경우에는 아래와 같이 호실을 계산할 수 있다. 하지만, floor = 0인 경우에는 위 공식이 성립하지 않기 때문에, if문을 이용해 다른 공식을 사용해야 한다. 코드 #include using namespace std; int main() { int T, H, W, N;// test data, floor of hotel, the number of room, the number of people int floor, room, number, answer[100]; cin >> T; for (int i = 0; i > H >> W >> N; floor = N % H;..
2024. 2. 20.
[백준] 2748번 : 피보나치 수 2 | int & long long 범위 (C++)
문제 풀이 아래에 첨부한 2747번 문제와 같은 방식으로 풀이했다. 두 문제의 차이점은 n의 범위이다. 2747번 문제는 n의 최댓값이 45이지만, 이 문제는 90이기 때문에 DP를 int 형으로 선언하면 오류가 발생한다. n = 90일 때, 피보나치 수는 288,0067,1943,7081,6120이기 때문에, DP를 long long 형으로 선언했다. int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이며, long long의 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807이다. [백준] 2747번 : 피보나치 수 - (C++) 문제 풀이 다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다. n이 조건의 최댓값인 45인 경..
2023. 5. 24.
[백준] 2747번 : 피보나치 수 - (C++)
문제 풀이 다이내믹 프로그래밍(DP)를 이용해 문제를 해결했다. n이 조건의 최댓값인 45인 경우, 피보나치 수는 11,3490,3170이다. int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이므로, 피보나치 수의 최댓값이 범위 내에 있기 때문에, DP를 int로 선언했다. 코드 #include using namespace std; int main() { int n; int DP[45]; cin >> n; DP[0] = 0; DP[1] = 1; for (int i = 2; i
2023. 5. 24.