FickleBoBo

[BaekJoon] 1016번 - 제곱 ㄴㄴ 수 [Java][C++]

문제 링크 1. 문제 풀이 min과 max 사이의 수 중에서 어떠한 제곱수로도 나누어 떨어지지 않는 수의 개수를 구하는 문제로 구간의 크기가 최대 $1,000,000$ 이고 각 수가 매우 크다. 에라토스테네스의 체처럼 미리 체크용 배열을 만들고 제곱 ㄴㄴ 수이면 체크하는 방식으로 필터링을 하면 해결할 수 있다. 이때 min이 매우 큰 수가 ...

[BaekJoon] 1059번 - 좋은 구간 [Java][C++]

문제 링크 1. 문제 풀이 주어진 집합에서 $x$ 를 포함하면서 $x$ 가 집합에는 포함되지 않는 좋은 구간의 개수를 구하는 문제로 이런 좋은 구간이 될 수 있는 구간 양 끝 값의 상한과 하한을 구해줬다. 주어진 집합을 순회하며 $x$ 보다 같거나 작은 수 중에서 가장 큰 수와 $x$ 보다 같거나 큰 수 중에서 가장 작은 수를 구하면 좋은 ...

[BaekJoon] 33557번 - 곱셈을 누가 이렇게 해 ㅋㅋ [Java][C++]

문제 링크 1. 문제 풀이 주어진 두 연산이 동일한 결과를 내는지 판단하는 문제로 $A$, $B$ 를 문자열로 다루어서 해결했다. 두 수의 곱은 정수 타입 오버플로우만 주의하면 되고, 이상한 곱셈은 더 짧은 수의 앞에 $1$ 을 길이가 맞을 때까지 넣어줘서 곱셈을 편하게 할 수 있게 해주었다. 2. 코드 1. 풀이 [Java] ...

[BaekJoon] 2331번 - 반복수열 [Java][C++]

문제 링크 1. 문제 풀이 주어진 수열에 해당 규칙을 적용할 시 언젠가는 반복되는 구간이 나온다고 전제하고 있어서 무한 루프를 활용하다가 해당 조건을 만나면 출력 후 종료를 해줬다. 특정 수가 등장했는지 여부를 알아야하며 반복되지 않는 구간의 길이를 위해 각 수의 등장 위치가 필요해서 해시맵 자료구조로 키에 해당 수, 값에 등장 순서를 저장...

[BaekJoon] 18115번 - 카드 놓기 [Java][C++]

문제 링크 1. 문제 풀이 Solved.ac에서 팽귄과 함께 마작을 프로필 배경을 획득할 수 있는 문제로 덱 자료구조를 활용하면 해결할 수 있다. 주어진 수열 $A$ 를 적용한 결과가 $1$ 부터 $N$ 까지의 순서가 되므로 이를 역순으로 탐색하며 초기 카드 상태를 찾아야한다. 초기 카드 상태를 담을 덱을 선언한 후 역순으로 탐색하며 1번...

[BaekJoon] 24262번 - 알고리즘 수업 - 알고리즘의 수행 시간 1 [Java][C++]

문제 링크 1. 문제 풀이 주어진 MenOfPassion 알고리즘은 파리미터로 넘어온 배열과 $n$ 에 대해 $n$ 을 2로 나눈 바닥값의 인덱스로 배열의 값을 반환한다. 입력의 크기와 무관하게 반환은 항상 1번만하므로 수행횟수는 1회이며, 시간복잡도는 $O(1)$ 이라 최고차항의 계수는 $0$ 이다. 2. 코드 1. 풀이 [Ja...