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. 풀이 [Java] public ...