반응형

Problem Solved/BOJ

    [BOJ][Java] 11650번 - 좌표 정렬하기

    문제 좌표를 정렬하는 문제 백준 11650번: 좌표 정렬하기 코드 설명 참고: [Java] == equals() compareTo() 차이와 사용법 [Java] Comparable와 Comparator의 차이와 사용법 자바 Comparable, Comparator 하면 '정렬'을 떠올려라, 자바 객체 정렬의 '기준'을 정하는 방법! (비교랑 다릅니다!) Comparator, Comparable Interfaces 이해가 쉽지 않아서 블로그들을 많이 참고했다. 한 마디로 정리하면 이번 문제에서는 정렬 기준이 2개일 때 사용하는 것이 Comparator, 기본적인 정렬 기준을 사용하는것이 Comparable인 것이다. 성공 코드 import java.util.Arrays; imp..

    [BOJ][Java] 1427번 - 소트인사이드

    문제 숫자를 정렬하는 문제 백준 1427번: 소트인사이드 코드 설명 입력값을 문자열로 한글자씩 배열에 넣음 이걸 다시 한글자씩 숫자로 바꿔서 저장해줌 Arrays.sort()를 이용해 오름차순 정렬 원하는 출력값은 내림차순한 숫자이므로 뒤에서부터 차례대로 출력해줌 성공 코드 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String[] n = s.next().split(""); s.close(); solution(n); } public static void solution(String[] ..

    [BOJ][Java] 5622번 - 다이얼

    문제 백준 5622번: 다이얼 문제 설명 A를 아스키코드로 변환하면 65인 것을 활용하여 문제를 풀었다. 2 ABC 0 1 2 0 3 DEF 3 4 5 1 4 GHI 6 7 8 2 5 JKL 9 10 11 3 6 MNO 12 13 14 4 7 PQRS 15 16 17 18 5 8 TUV 19 20 21 6 9 WXYZ 22 23 24 25 7 위는 다이얼을 표로 정리한 표이다. 3번째 열은 각각 문자를 숫자로 변환하고 65를 뺐을 때의 값이고, 4번째 열은 이를 3으로 나눴을 때의 몫의 값이다. 여기서 빨간색으로 표시한 18, 21, 24, 25만 다이얼 개수 문제로 몫의 값보다 1씩 크다 그래서 4개만 예외로 두고 3을 빼고 나누면 올바른 값이 나온다. 코드에서 문자에 59만 뺀 이유는 편의성을 위해서..

    [BOJ][Java] 2908번 - 상수

    문제 백준 2908번: 상수 문제 설명 입력받은 두 수를 거꾸로 뒤집어서 큰 숫자를 출력(출력도 뒤집힌 수로 출력) reverse할 때는 StringBuffer를 이용했다. 인풋받은 두 숫자를 리벌스하면서 의미없는 코드가 반복될 것 같아 reverse 함수를 따로 만들어 줬다. 성공 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = reverse(sc.next()); int b = reverse(sc.next()); sc.close(); if (a > b) System.out.println(a); else Syste..

    [BOJ][Java] 10989번 - 수 정렬하기 3

    문제 수의 범위가 작다면 카운팅 정렬을 사용하여 더욱 빠르게 정렬할 수 있습니다. 10989번 - 수 정렬하기 3 입력된 숫자들을 오름차순 정렬시키는 문제 카운팅정렬 사용하기 문제 설명 Counting Sort란? 중복되는 숫자의 개수를 세어 정렬하는 방식 수의 범위가 커질수록 시간복잡도가 커져 비효율적임 정렬할 배열에서 최댓값을 구함 0부터 최댓값까지 각 숫자가 몇 번 등장하는지 카운팅함 카운팅을 바탕으로 누적카운팅을 함 누적카운팅은 곧 정렬될 배열의 인덱스가 됨. 뒤에서부터 차례대로 인덱스 값을 계산해 정렬하면 완성 참고 - Counting Sort : 계수 정렬 Counting Sort 시뮬레이션 하기 성공 코드 import java.io.BufferedReader; import java.io.Bu..

    [BOJ][Java] 2751번 - 수 정렬하기 2

    문제 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 병합 정렬, 힙 정렬 등이 있지만, 어려운 알고리즘이므로 지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다. 2751번 - 수 정렬하기 2 문제 링크 입력된 숫자들을 오름차순 정렬시키는 문제(단, 시간복잡도가 O(nlogn)여야 함) 문제 설명 2750번 - 수 정렬하기 문제와 같은 문제지만 시간복잡도 제한이 늘었다. 2750번 문제를 풀 때 방식인 bubble sort나 Arrays.sort를 사용한다면 시간 초과가 뜨게 될 수 있다. **기본적으로 시간복잡도를 줄여야 하는 문제에서는 Scanner를 이용한 입출력보다는 Buffer를 이용한 입출력을 쓰는 것이 좋다. 시간복잡도 관련 참고글 - 각 언어별 inpu..