2024.06.28기준 - 실버4백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 주어진 문자열을 가지고 조건에 맞춰 조합해 출력하는 문제입니다. 제가 생각하는 문제의 핵심은 뒤에서 1, 2번째 A의 위치를 파악하는 것이라고 생각합니다. 1. A의 인덱스를 저장하는 리스트를 생성했습니다.// A의 인덱스를 저장하는 리스트List aindexs = new LinkedList();for (int i = 0 ; i 2. 만약 A의 개수가 2개 보다 작다면 바로 NO출력하고 종료합니다.// A는 무조건 2개 이상이 필요하지만 2개 미만으로 있을때if (aindexs.size() 3. 2개 이상이라면 AA와 뒤에 들어가 한 자리를 제외하고는 앞에서 조합을 해야되기 때문에 전체 길이에 -3을 해주..
2024.06.26기준 - 실버3백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 조건에 맞게 카드 게임시 플레이어가 얻을 수 있는 총 점수의 제일 큰 값을 출력하는 문제입니다. 이 문제의 핵심은 플레이어와 딜러 둘 다 카드를 더미 카트를 제외하고 소모하거나, 최대 턴 수가 되면 게임이 종료된다는 점입니다.다른게 생각하면 양수의 값은 최대 턴 수에 맞춰 얻을 수 있지만, 만약 음수의 점수를 얻어야 된다면 더미 카드만 왔다 갔다 하면서 턴을 소비할 수 있다는 소리입니다. 1. 카드를 하나의 배열에 저장해 플레이어가 얻는 점수는 score에 더 해 점수를 얻고 딜러에게 주는 카드는 remove를 통해 없애는 방식으로 접근했습니다.List list = new LinkedList(); // 카드를..
2024.06.25기준 - 실버3백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 1학년과 2학년이 점호를 전부 받았을 때의 시간을 출력하는 문제입니다. 줄을 서는 인원의 순서는 들어온 순서대로 참조하지만,k만큼 확인하는 인원은 순서에 상관없이 학년만 조사하기 때문에 1학년과 2학년을 정렬을 해서 문제에 접근했습니다. 1. 학생을 저장할 때에 qu에다가 저장합니다.Queue qu = new LinkedList(); // 학생을 저장할 큐 2. 확인하는 인원들은 따로 Deque를 선언해 저장을 해 주었습니다.Deque sub = new LinkedList(); // 확인하는 인원들을 저장하는 큐 3. 반복문을 통해 확인하는 인원 수가 k보다 작다면 qu에 있는 인원에서 채워주도록 했습니다.w..
2024.06.24기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 친구의 관계를 입력 받을 때, 유저 중 모든 친구와 제일 가까운 유저를 출력하는 문제입니다. 이 문제에 접근하기 위해서 플로이드 위셜 알고리즘을 통해 접근을 하였습니다. 플로이드 워셜 알고리즘그래프 내 모든 정점 쌍의 최단 경로를 반복적으로 계산합니다.두 정점 사이의 최단 경로가 어떤 중간 정점을 거쳐서 갈 때 더 잛은지를 확인하여 입력하는 방식입니다.플로이드 위셜 알고리즘 작동 과정1. 초기화● 그래프의 인접 행렬 d를 사용합니다. 여기서 d[i][j]는 정점 i에서 정점 j로 가는 초기 가중치를 의미합니다.● 만약 i에서 j로 직접적인 간선이 없다면 d[i][j]를 무한대로 설정합니다. 그러나 자기 자신으..