문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? 입력 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다. 모든 문자열은 1이상 20이하의 알파벳 소문자로 이루어져있으며 같은 이름을 가진 의상은 ..
ArrayList 를 정렬하는데는 Collections.sort() 메소드를 사용한다. 이 sort() 메소드의 인자로 정렬할 리스트를 넘기게 되는데, 오버로딩된 두 가지 버전의 메소드가 있다. Comparable : 객체 간의 일반적인 정렬이 필요할 때, Comparable 인터페이스를 확장해서 정렬의 기준을 정의하는 compareTo(Object o) 메서드를 구현한다. => 한 가지 기본 정렬 규칙을 설정(클래스에 규칙을 하나 정해놓고 누군가 정렬하라고 한다면 그 객체는 규칙대로 정렬을 수행) Comparator : 객체 간의 특정한 정렬이 필요할 때, Comparator 인터페이스를 확장해서 특정 기준을 정의하는 compare(Object o1, Object o2) 메서드를 구현한다. (두개의 인..
기존 For 문: for(초기화; 조건; 증감) => 하나의 변수(i)로 그 값을 count 한다. for (int i = 0; i size 따로 지정x 1) 배열(①)에서 가져올 첫번째 값이 존재하는지 확인 2) 값이 있다면 -> 변수(②)에 저장 2-1) 값이 없다면 -> for문 종료 3) 실행문(③) 실행 [Ex1] 기본 향상된 For문(배열) int [ ] numList = {1, 2, 3, 4, 5}; for( int i=0; i
문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. Ja..
객체 배열이란? 클래스를 배열로 선언하는 방식 객체 배열을 사용하는 이유 객체는 메모리에서 single record 만 표현할 수 있다. 만약 multiple record를 표현시 객체배열을 사용한다. 다양한 타입(String,Integer, any class instance)의 데이타를 객체 배열을 통해 저장할 수 있다. 기본 데이터 타입의 배열 VS 객체 배열 기본 데이터 타입의 배열 : 배열 선언과 동시에 메모리 생성 객체 배열 : 객체 변수의 이름들만 생성, 실제 객체 내부의 메모리는 생성X ex. Car[] car = new Car[8]; => 참조변수 8개 생성되지만 실제 8개의 참조변수에 대한 객체 자체의 메모리 생성 X ∴ 객체의 메모리를 따로 생성하는 과정이 별도로 필요함! 사용방법 1...
StringTokenizer란? 긴 문자열을 지정된 구분자(delimiter)를 기준으로 토큰(Token)이라는 여러 개의 문자열로 잘라내는 데 사용된다. StringTokenizer의 경우 구분자로 단 하나의 문자 밖에 사용 할 수 없는 단점이 있다. StringTokenizer 객체를 생성할 때 첫 번째 파라미터로 전체 문자열을 주고, 두 번째 파라미터로 구분자를 주면 된다. 만약 구분자가 생략되면 구분자는 기본적으로 공백(space)가 된다. StringTokenizer st = new StringTokenizer("문자열", "구분자"); public class StringTokenizer implements Enumeration { .. .} StringTokenizer 주요 메소드 메소드 설명..
문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. Java Solution import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; im..