https://www.acmicpc.net/problem/1427 알고리즘 분류 : 문자열, 정렬 ❓문제🔅해석정렬 알고리즘에는 비교 기반 정렬 알고리즘과 비교하지 않는 정렬 알고리즘이 있다. 해당 문제는 비교 기반 정렬 알고리즘 중 '선택 정렬' 알고리즘을 사용하여 풀이했다. 선택 정렬 알고리즘 순서는 아래와 같다. 1. 남은 정렬 부분에서 최솟값 또는 최댓값을 찾는다. 2. 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap 한다. 3. 가장 앞에 있는 데이터의 위치를 변경해 남은 정렬 부분의 범위를 축소한다. 4. 전체 데이터 크기만큼 index가 커질 때까지, 즉 남은 정렬 부분이 없을 때까지 반복한다.⭕정답 코드import java.io.BufferedReader;import ..
https://www.acmicpc.net/problem/23968알고리즘 분류 : 구현, 정렬, 시뮬레이션 ❓문제🔅해석비교 기반 정렬 알고리즘인 버블 정렬을 활용하는 문제이다.버블 정렬은 양옆에 위치한 두 값을 비교하면서 크기 순으로 정렬한다. 그 동안은 전역변수, 지역변수 신경 쓰지않고 작성했지만 이제부터 ChatGPT-4o에게 코드리뷰를 받고 코딩 습관을 고치려고 한다. 코드리뷰 전 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;//백준 23968번public class Main { static int N, K; stati..
코딩테스트에서 시간복잡도의 중요성은 매우 크다.많은 코딩테스트 문제집을 살펴보면 목차의 앞부분에 항상 시간복잡도에 대한 설명이 포함되어 있다. 이는 문제를 해결할 때 시간복잡도를 고려하는 것이 필수적임을 보여준다. 시간복잡도시간복잡도란 주어진 문제를 해결하기 위해 필요한 연산 횟수를 나타낸다.알고리즘이 얼마나 효율적인지를 평가하는 기준이 된다.코딩테스트에서는 시간복잡도를 기반으로 알고리즘의 성능을 평가하고, 제한된 시간 안에 문제를 풀 수 있는지를 가늠한다. 왜 시간복잡도가 중요한가?일반적으로 코딩테스트에서는 1억 번의 연산을 1초에 처리할 수 있는 기준을 사용하여 수행 시간을 예측한다.따라서 문제를 풀 때는 주어진 입력 크기에 맞는 최적화된 알고리즘을 선택해야 한다. 만약 시간복잡도가 높은 알고리즘을 ..