분류 전체보기 257

Java: String 문자열 비교에서 ==, != 아닌 equals() 메소드사용, Wrapper 클래스 값 비교(리터럴, new 연산자 생성)

String String은 int나 char 기본(Primitive type) 자료형과 근본적으로 다르다 String은 Wrapper class에 속한 객체며 참조형(Reference Type)이다 ​ String 데이터 생성하기 Wrapper class의 데이터 생성에는 2가지 방법이 있다​ 1. 리터럴 생성 public class Main { public static void main(String[] args) { String s = "문자열"; System.out.println(s); //"문자열" 출력 } } 2. new 연산자 이용 public class Main { public static void main(String[] args) { String s = new String("문자열"); S..

Study/Java 2021.11.08

Baekjoon1181: 단어 정렬

단어 정렬 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 69787 28697 21343 40.318% 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 풀이 두 방법을 생각해보았다. 1) 문자열을 기록하는 배열과 글자수를 저장하는 배열을 만든 후 글자수에 따라 ..

Study/Baekjoon 2021.11.08

Baekjoon11650,11651: 좌표 정렬하기

좌표 정렬하기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 57519 27672 20998 48.003% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 11650풀이 Java: 1차원, 2차원 배열 오름차순, 내림차순 정렬 요약과 이해 1차원 배열 정렬 java.u..

Study/Baekjoon 2021.11.06

Java: System.in.read(); 이해하기, 입력값을 알뜰하게 받기

System.in.read() Scanner, BufferedReader를 사용하지 않고 입력값을 받을 수 있다. 버퍼(InputStream)를 사용하기 때문에 효율적이며 IOException의 throw를 필수적으로 해주어야 한다. 문자를 하나씩만 가져올 수 있고 아스키 코드로 변환해 가져온다 예시를 통한 이해 import java.io.*; public class Main { public static void main(String[] args) throws IOException{ for(int i=0; i

Study/Java 2021.11.05

Baekjoon1427: 소트인사이드, System.in.read();

소트인사이드 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 43447 26601 22398 61.682% 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 풀이 숫자 크기에 명백한 제한이 있을 때 카운팅 정렬을 생각하게 된다. 각 자리수의 경우 0~9까지 수의 범위는 제한적이다. 10크기의 카운팅 배열을 만들고 숫자에 해당하는 index에 값을 추가해 9부터 0까지 출력한다 Arrays.sort 등을 사용해 코드 길이를 줄일 수 있지만 이번에는 System.in.read..

Study/Baekjoon 2021.11.05

Baekjoon10989: 수 정렬하기 3, 카운팅 정렬

수 정렬하기 3 시간 제한메모리 제한제출정답맞은 사람정답 비율 5 초 (하단 참고) 8 MB (하단 참고) 129846 29380 21612 23.384% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이1 이전 단계 문제에서 사용한 Arrays.sort를 이용해도 풀이가 되는 것을 확인할 수 있다 import java.io.*; import java.util.Arrays; public class Main { sta..

Study/Baekjoon 2021.11.04

알고리즘: 정렬 - 삽입 정렬, 버블 정렬, 병합 정렬, 선택 정렬, 퀵 정렬, 힙 정렬, 카운팅(계수) 정렬

안정 정렬 Stable sort, 정렬 전의 순서를 유지하고 정렬된다 삽입(Insertion) 정렬, 버블(Bubble) 정렬, 병합(Merge) 정렬이 있다 삽입 정렬 두번째 자료부터 시작해 자신보다 앞 자료들과 크기를 비교해 알맞은 자리에 끼워넣는다 버블 정렬 서로 인접한 자료들을 계속해서 정렬해준다. 1번 회전이 될 때 가장 큰 수가 맨 오른쪽에 위치한다 병합 정렬 현재 배열을 두 개로 나눈 뒤 각각 정렬을 수행한다. 정렬된 두 배열의 처음 값들을 비교해 작은 값을 먼저 원래 배열에 넣어준다 위의 예시는 원리를 설명하기 위한 병합정렬의 맨 마지막 과정이다. 자세히 보면 크기가 4인 배열들이 이미 정렬되어 있다. 크기가 4인 배열을 정렬하기 위해 크기가 2인 배열로 나누고 다시 크기가 1인 배열로 나..

Study/알고리즘 2021.11.04

Baekjoon2750,2751: 수 정렬하기(Scanner, Buffer)

수 정렬하기 2 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 256 MB 147950 39870 27221 29.965% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 2750 풀이 수 정렬은 Arrays.sort를 이용하면 곧바로 해결된다 import java.util.Arrays; import java.util.Scanner; public class Main { stati..

Study/Baekjoon 2021.11.03

Baekjoon13305*: 주유소

주유소 서브태스크 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 512 MB 21992 8272 6547 37.056% 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은 다를 ..

Study/Baekjoon 2021.11.02

Baekjoon1541: 잃어버린 괄호

잃어버린 괄호 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 35632 16846 13602 47.219% 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫..

Study/Baekjoon 2021.11.02