java

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    참고 링크 https://okky.kr/article/546389 OKKY | ArrayList를 사용할 때 레퍼런스 변수를 List 타입으로 만드는 이유가 궁금합니다. 안녕하세요. 1년차 새내기 개발자입니다. 회사에서 자바를 사용하는데, 제가 써 본 적이 없어서 처음부터 공부하는 중입니다. List String list new ArrayList String (); 공부하면서 예제를 보니 위와 같은 okky.kr Collection이나 Class를 공부하면서, 객체를 참조할 때 그 클래스가 아닌 인터페이스를 참조하는 경우가 많음을 알게 되었다. 그냥 인스턴스의 클래스를 참조하면 될 것 같은데 왜 인터페이스를 사용하는지 궁금해서 찾아보았다. 형태 변형이 자유롭다 List 인터페이스에 있는 ArrayList..

    [백준] 1978 - 소수 찾기 (자바/Java)

    문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 소수는 1과 자기 자신만을 약수로 갖는 1보다 큰 자연수이다. 그러므로 자기 자신보다 작고 2보다 크거나 같은 수 중에 나머지가 0인 수가 없으면 소수가 된다. 숫자가 1이거나, 약수를 가지는 경우에는 cnt를 더하지 않았고 아닌 경우에만 cnt를 더해 소수의 수를 구하였다. package boj0728; import java.util.Scanner; public class BOJ_1978_소수찾기 { public static void main(..

    [백준] 10814 - 나이순 정렬 (자바/Java)

    문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 수업..

    [자바/Java] 제네릭 Generics

    제네릭 Generics 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입을 미리체크하는 것 Generic이 아닐 경우, 클래스에 모든 타입이 들어갈 수 있어 입력 시 편리하지만, 이후 클래스를 이용할 때 불편함 미리 사용할 타입을 명시 → 형 변환을 하지 않아도 됨 객체의 타입에 대한 안전성 향상 및 형 변환의 번거로움 감소 표현 클래스또는 인터페이스 선언 시 에 타입 파라미터 표시 타입 파라미터 T : reference Type E: Element K : Key V : Value Class_Name generic = new Class_Name(); Class_Name generic2 = new Class_Name(); // 생성 쪽에 쓰지 않으면 알아서 같은 타입으로 Type p..

    [백준] 2839 - 설탕 배달 (자바/Java)

    https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1..

    [백준] 1065 - 한수 (자바/Java)

    https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. ..

    [백준] 1181 - 단어 정렬 (자바/Java) : Comparator

    문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. Comparator를 이용하여 String을 비교하는 compareTo() 메소드를 override 하였다. 먼저 길이를 비교하고, 길이가 같으면 그때 사전순으로 (기존 String 비교 방식) 비교하도록 구현하였다. 또한 출력할 때..

    [백준] 2869 - 달팽이는 올라가고 싶다 (자바/Java)

    문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 처음에 while문으로 day를 하나씩 증가하도록 구현하였는데 시간 초과가 떴다 day를 V / (A-B)로 한다면, 정상에 올라간 후에는 미끄러지지 않는 조건 때문에 최소 일수를 구할 수 없다..

    [백준] 1316 - 그룹 단어 체커 (자바/Java)

    문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출력한다. String의 각 char들은, 중복된 글자가 없거나 있다면 자..

    [백준] 10989 - 수 정렬하기 3 (자바/Java) : 계수 정렬(Counting Sort)

    문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 계수 정렬을 이용하는 문제이다. 처음에 입력 범위가 10,000인 걸 모르고 에러 남..하하 package BOJ0726; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.O..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]