개요요즘에는 알고리즘 문제풀이 연습에 시간을 많이 할애하고 있습니다. 한동안 연습을 등한시했더니, 완전 기초적인 지식도 헷갈려서 골치 아프네요. 특히나 언어를 Java로 바꾸면서 언어적 특성도 같이 공부하느라 더 머리가 아픕니다. 아무튼, 저는 백준과 프로그래머스 두 플랫폼을 주로 사용하고 있습니다. 개인적으로, 프로그래머스 문제들은 문제 자체를 이해하는 능력과 구현 능력이 필요한 스타일이라면, 백준 문제들은 대부분 알고리즘 자체에 대한 이해를 필요로 하는 스타일이라고 느낍니다. 그래서 둘 다 골고루 많이 연습해 보는 게 좋은 것 같습니다. 두 플랫폼간의 큰 차이점이 한 가지 더 있습니다. 문제에 대한 테스트케이스 데이터 입력 방식이 다르다는 점인데요.프로그래머스 방식은 데이터 입력을 함수의 매개변수로..
문제N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오.같은 정수는 한 번만 출력한다. 입력첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다.이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 출력첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다. 풀이import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Scanner;public class Main { public static void main(String[] args) { //Buff..
문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다.이 수는 10,000보다 작거나 같은 자연수이다. 출력첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception { // 카운팅 정렬 => 입력받을 숫자의 최소~최대 범위를 알고 있을 때 사용하면 빠른 성능을 기대할 수..
문제흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다.사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. 입력 첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0) 출력점 (x, y)의 사분면 번호(1, 2, 3, ..