전체 글 70

손해보험설계사 자격시험 합격 후기

시작하기에 앞서 보험 업무를 하지 않고 있기에 업무 권유는 자제해주세요. 시작 동기최근 개발 분야의 취업 현황이 좋지 않아 그 방향으로 시간을 투자하는 것이 비효율적이라는 생각이 들었습니다. 남는 시간을 더 가치 있게 활용하고자 새로운 도전을 찾던 중, 손해보험설계사 자격시험을 준비하게 되었습니다. 준비 과정손해보험설계사 시험은 두 개의 영역에서 각각 60점 이상을 받아야 합격할 수 있습니다. 1번부터 33번 문항까지, 그리고 18번부터 50번 문항까지 각각 점수를 넘겨야 하기에, 저는 공통 문제에 집중하여 공략하는 전략을 세웠습니다. 공통적으로 나오는 부분을 철저히 준비하면, 효율적으로 점수를 확보할 수 있다고 판단했습니다. 시험 팁 & 전략기출문제 반복 풀이: 가장 효과적이었던 전략은 기출문제를 반복..

[백준] 11279번: 최대 힙

문제https://www.acmicpc.net/problem/11279최대 힙(Max Heap) 을 구현하여 주어진 연산을 처리하는 문제입니다. 최대 힙은 가장 큰 값을 빠르게 꺼낼 수 있는 자료구조로, 다음과 같은 연산을 지원합니다. 접근 방법우선순위 큐(Priority Queue) 활용:자바의 PriorityQueue는 기본적으로 최소 힙으로 작동합니다. 따라서, 최대 힙으로 사용하려면 역순 정렬을 사용하여 힙의 우선순위를 반대로 설정합니다.연산 처리:x > 0일 경우: 최대 힙에 x를 추가합니다.x == 0일 경우: 최대 힙에서 최댓값을 꺼내어 출력합니다. 힙이 비어있으면 0을 출력합니다. 풀이 과정최대 힙 구현:PriorityQueue를 역순으로 정렬하여 최대 힙을 구현합니다.입력 처리 및 연산 ..

[백준] 1436번: 영화감독 숌

문제https://www.acmicpc.net/problem/1436영화 제목에 특정한 숫자 패턴이 포함되는지를 찾는 문제입니다.영화감독 숌은 666이 들어가는 영화를 만들고 싶어합니다. 예를 들어 첫 번째 영화 제목은 666, 두 번째 영화 제목은 1666, 세 번째 영화 제목은 2666... 이런 식으로 진행됩니다. 접근 방법브루트 포스 탐색:숫자를 하나씩 증가시키며, 666이 포함된 숫자를 찾습니다.조건 확인:현재 숫자를 문자열로 변환하여 "666"이 포함되어 있는지 확인합니다.목표 도달 시 종료:666이 포함된 숫자를 N번째 찾을 때까지 반복합니다. 풀이 과정입력값 읽기:BufferedReader를 통해 정수 N을 입력받습니다.숫자 탐색:num을 666부터 시작하여 숫자를 하나씩 증가시키면서 "6..

[백준] 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1

문제https://www.acmicpc.net/problem/24262시간 복잡도(Time Complexity) 개념을 이해하는 데 초점을 둔 문제입니다. 주어진 문제에서 함수 f(n)은 입력값 n에 관계없이 항상 한 번만 실행됩니다. 따라서 이 함수의 시간 복잡도는 상수 시간 복잡도인 O(1)입니다. 접근 방법상수 시간 복잡도: 함수 f(n)은 입력값 n과 상관없이 단 한 번 실행되므로, 항상 시간 복잡도는 O(1)입니다. 풀이 과정첫 번째 줄에는 1 (실행 횟수)두 번째 줄에는 0 (시간 복잡도 O(1)을 의미) 코드import java.io.IOException;public class Main { public static void main(String[] args) throws IOExcept..

[백준] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 - Java

문제https://www.acmicpc.net/problem/3003입력으로 주어진 말의 개수를 기준으로, 체스 세트를 완성하기 위해 몇 개의 말이 더 필요하거나 초과하는지를 구하는 것이 목표이다. 접근 방법주어진 입력을 읽고, 각 말의 개수가 체스 세트에 필요한 기본 개수와 얼마나 차이가 나는지 계산해야 합니다.이를 위해, 각 말의 기본 개수를 저장한 배열과 입력으로 받은 현재 말의 개수를 저장한 배열을 이용하여 차이를 구합니다. 풀이 과정기본 개수 배열을 정의합니다: int[] requiredPieces = {1, 1, 2, 2, 2, 8}.입력된 말의 개수를 저장합니다.기본 개수와 입력된 개수의 차이를 계산하여 출력합니다. 코드import java.io.BufferedReader;import jav..

[백준] 1316번: 그룹 단어 체커 - Java

문제https://www.acmicpc.net/problem/1316주어진 단어가 '그룹 단어'인지 확인하는 문제로,  그룹 단어란 각 문자가 연속해서 나타나는 단어를 말합니다. 예를 들어, "happy", "new", "year"는 그룹 단어지만, "aba", "abcabc"는 그룹 단어가 아닙니다. 접근 방법각 단어를 순회하면서 그룹 단어인지 확인, 그룹 단어인지 확인하기 위해서는 이전에 등장했던 문자가 다시 나오지 않는지 체크하면 된다. 풀이 과정각 단어를 순회하면서 문자가 연속적으로 등장하는지 확인합니다.이전 문자를 기록하고, 현재 문자가 이전 문자와 다를 때, 이전에도 등장했던 문자라면 그룹 단어가 아닙니다.문자의 등장 여부를 기록하기 위해 boolean 배열을 사용합니다. 이 배열은 각 문자의..

[백준] 10988번: 팰린드롬인지 확인하기 - Java

문제https://www.acmicpc.net/problem/10988주어진 문자열이 팰린드롬인지 확인하는 문제로,  팰린드롬(Palindrome)이란 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 문자열을 의미한다. 접근 방법팰린드롬은 첫 번째 문자와 마지막 문자가 같고, 두 번째 문자와 끝에서 두 번째 문자가 같은 식으로 쌍을 이루어야 합니다. 이를 반복하여 문자열의 길이의 절반만큼 비교하면 된다. 풀이 과정입력 받기: 문자열을 입력받습니다.팰린드롬 확인: 문자열의 앞쪽 문자와 뒤쪽 문자를 순서대로 비교합니다.반복문 사용: 반복문을 통해 문자열의 길이의 절반만큼 비교하면서 문자가 다르면 팰린드롬이 아님을 확정할 수 있습니다.결과 출력: 모든 쌍이 일치하면 팰린드롬으로 판단하고 1을 출력, 하나라도 다르면..

[백준] 2346번: 풍선 터뜨리기 - Java

문제https://www.acmicpc.net/problem/2346N개의 풍선이 일렬로 나열되어 있고, 각 풍선에는 숫자가 적혀 있습니다. 첫 번째 풍선부터 시작하여 풍선을 터뜨리고, 그 풍선에 적힌 숫자만큼 왼쪽이나 오른쪽으로 이동해 다음 풍선을 터뜨립니다. 모든 풍선을 터뜨릴 때까지 이 과정을 반복합니다.접근 방법Deque를 사용하여 양쪽 끝에서 삽입과 삭제가 가능하기 때문에 풍선을 터뜨린 후 이동하는 작업을 효율적으로 처리할 수 있다. 풀이 과정첫 번째 풍선을 터뜨리고, 그 풍선의 값을 기록합니다.그 값을 기준으로 오른쪽(양수) 또는 왼쪽(음수)으로 이동합니다.이동한 후에 다음 풍선을 터뜨리고, 그 값을 다시 기록합니다.이 과정을 모든 풍선이 터질 때까지 반복합니다. 코드import java.io..

[백준] 18770번: 좌표 압축 - Java

문제https://www.acmicpc.net/problem/18870주어진 좌표들을 압축하여 상대적인 순위를 매기는 문제,주어진 좌표들이 [-10, -5, 2, 3, -10, -5]라면,각 좌표의 상대적인 순위를 계산하여 [0, 1, 2, 3, 0, 1]로 변환하는 것으로데이터의 양이 많아질 때도 효율적으로 처리할 수 있도록 하는 것이 중요하다. 접근 방법원본 좌표를 배열에 저장: 입력된 좌표들을 그대로 배열에 저장합니다.좌표 정렬: 원본 배열의 복사본을 만들어 이를 정렬합니다.좌표 압축: 정렬된 배열을 순회하며, 각 좌표의 순위를 매겨 HashMap에 저장합니다.결과 출력: 원본 배열을 순회하면서, HashMap에서 해당 좌표의 압축된 값을 가져와 출력합니다. 코드import java.io.*;imp..

[백준] 1966번: 프린터 큐 - Java

문제https://www.acmicpc.net/problem/1966여러 문서가 프린터에 들어오면, 중요도에 따라 높은 중요도를 가진 문서부터 출력됩니다. 주어진 문서 리스트에서 특정 문서가 몇 번째로 출력되는지 계산하는 문제입니다. 중요도가 높은 문서를 먼저 출력하며, 특정 문서가 언제 출력되는지 순서를 찾는 것이 목표이다. 접근 방법큐를 활용한 시뮬레이션: 문제에서 제시한 순서대로 문서를 처리하고, 인쇄 순서를 계산합니다. 큐를 이용해 앞에서부터 차례대로 문서를 꺼내고, 중요도가 더 높은 문서가 있으면 현재 문서를 다시 큐의 끝으로 이동시킵니다.목표 문서 찾기: 문서를 인쇄할 때마다 해당 문서가 우리가 찾는 문서인지 확인하고, 찾고자 하는 문서가 인쇄되면 그 순서를 출력합니다. 코드import jav..