FickleBoBo

[BaekJoon] 35296번 - 아침 점호 [Java][C++]

문제 링크 1. 문제 풀이 주어진 출석표에서 출석 체크가 안된 학생은 자신의 출석과 자기 번호와 1 차이가 나면서 출석부 칸에서 인접한 학생까지 체크할 수 있다. 최소의 학생으로 출석을 전부해야하는데 이는 1번부터 출석을 안한 학생이면 자기 번호를 체크하고 다른 사람 번호도 체크할 수 있으면 최대한 체크하면 된다. 이때 자신 바로 아랫칸이 ...

[BaekJoon] 35295번 - 소수가 아닌 수 4 [Java][C++]

문제 링크 1. 문제 풀이 $N$ 개의 서로 다른 정수에 대해 2개 이상의 정수를 중복없이 골라서 최소공배수가 소수가 아닐 수 있는지 판단하는 문제로 소수는 약수가 1과 자기자신 밖에 없으므로 주어진 수들이 1과 임의의 소수 하나로만 이루어져있지 않으면 항상 최소공배수가 소수가 아닌 두 수를 선택할 수 있다. 2. 코드 1. 풀이...

[BaekJoon] 18185번 - 라면 사기 (Small) [Java][C++]

문제 링크 1. 문제 풀이 주어진 세 가지 방법을 통해 모든 라면을 구매하는 최소 비용을 구하는 문제로 그리디 알고리즘을 활용하면 해결할 수 있다. 각 방법을 통해 구매한 라면의 평균 가격을 보면 첫 번째 방법은 1개당 3원이 들고, 두 번째 방법은 1개당 2.5원이 들고, 세 번째 방법은 1개당 2.33원이 들어서 최대한 세 번째 방법으로...

[BaekJoon] 5598번 - 카이사르 암호 [Java][C++]

문제 링크 1. 문제 풀이 주어진 카이사르 단어로부터 원래 단어를 찾아 출력하는 문제로 카이사르 단어는 주어진 단어의 각 알파벳을 오른쪽으로 3칸 민 형태이다. 따라서 주어진 카이사르 단어의 각 알파벳을 왼쪽으로 3칸 밀면 원래 단어를 찾을 수 있다. 이때 $Z$ 와 $A$ 가 원형으로 이어져 있으므로 유니코드 상에서 인덱스 처리에 주의해야...

[BaekJoon] 3015번 - 오아시스 재결합 [Java][C++]

문제 링크 1. 아이디어 한 줄로 서 있는 N명의 사람들에 대해 서로 볼 수 있는 쌍의 수를 구하는 문제로 N이 최대 500,000이어서 단순한 브루트 포스 탐색으로는 해결할 수 없다. 해당 문제는 단조 스택을 활용하면 해결할 수 있는데 특정 사람은 자신보다 큰 사람이 등장하기 전까지 가려지지 않은 왼쪽 사람들을 모두 볼 수 있다는 점을 활...