전체 글
-
[알고리즘] 백준 - 11047 ( 동전 0 )알고리즘 2022. 7. 22. 14:56
문제 접근 생각할점, Ai = 1인 조건도 있어서 정답은 무조건 나와야한다 처음에 저는 while문에서 k > 0 인 동안에 k 값을 data 리스트 안에 넣어서 입력받은 n개의 종류들을 함께 정렬을 시키는 방식으로 하려고 했습니다. 하지만, 문제를 풀다 보니까 예제는 통과는 하는데 백준에서는 통과가 되지 않았습니다. ( 이유를 아시는 분은 알려주세요 ) ㅜㅜ import sys input = sys.stdin.readline n, k = map(int, input().split()) data = list() for i in range(n): data.append(int(input())) count = 0 while k > 0: data.append(k) data.sort() for i in range(..
-
[자바] 제네릭스자바 2022. 7. 22. 11:46
1. Generics generics - 다양한 타입의 개게들을 다루는 메서드나 컬렉션 클래스에 "컴파일 시의 타입 체크"를 해주는 기능이다 제네릭 장점 1. 타입 안전성 제공 2. 타입체크와 형변환을 생략할 수 있으므로 코드 간결 제네릭 클래스 선언 T = 타입 변수 ( 임의의 참조형 타입 ) class Box { // 제네릭 타입 T 선언 T item; void setItem(T item) { this.item = item; } T getItem() { return item; } } Box b = new Box(); // 타입 T 대신 실제 타입 b.setItem(new Object()); // 에러 String만 가능 b.setItem("ABC"); // String item = (String) b..
-
[알고리즘] 이코테 - 볼링공 고르기 ( 2019 SW 마에스트로 입학 테스트 )알고리즘 2022. 7. 21. 17:27
문제 두사람이 볼링을 치고 있을때 N개의 공이 있다. 이 공들은 각각이 1 ~ M 사이의 무게가 정해져 있으며, 같은 무게여도 다른 공으로 판별한다. 두사람이 공을 고를때 이때 나올 수 있는 볼링의 조합의 수를 구하시오 접근 문제에서 조합이라고 표시를 했기에 Combination을 사용합니다. 나오는 모든 combination에서 같은 무게를 고르는 경우만 빼면 됩니다 풀이 from itertools import combinations n, m = map(int, input().split()) data = list(map(int, input().split())) res = list(combinations(data, 2)) count = 0 for i in range(len(res)): if res[i][..
-
[알고리즘] 이코테 - 만들 수 없는 금액알고리즘 2022. 7. 21. 17:01
문제 N개의 동전이 있고 그 N개의 동전을 이용해서 만들 수 없는 양의 정수 금액중 최솟값 구하는 문제이다. 접근 먼저 1원짜리 동전이 없는경우는 1원이 최솟값이 된다. 그렇기 때문에 받아온 데이터들에 있어서 오름차순 정렬이 필요하다 한번에 2개가 아니라 3개..N개를 더해서 나오는 경우도 생각을 해야한다. 받아온 데이터들에 있어서 target 값을 1로 설정을 해두고 data의 값이 target 값보다 적은지 크다면 data값에 target 값을 더해서 반복을 해준다 풀이 n = int(input()) data = list(map(int, input().split())) data.sort() t = 1 for i in data: if t < i: break t += i print(t)
-
[알고리즘] 백준 1439 문자열 뒤집기알고리즘 2022. 7. 21. 15:21
문제 접근 1. string 형식의 데이터를 입력받는다. 2. 0 1 로 바뀔때마다 각각을 count 해준다 3. 첫번째 데이터를 기준으로 해서 2번째 데이터와 끝의 데이터의 범위까지 데이터를 비교해서 count 값을 증가 시켜준다 4. min() 을 통해 둘 중에 더 낮은 값의 count 반환해준다 풀이 # 입력값은 0혹은 1로만 받는다 data = input() # 0 1로 바뀔때마다 count zeroCount = 0 oneCount = 0 # 첫번째 데이터를 지정 if data[0] == '1': # string 형식으로 처음에 데이터를 입력받음 zeroCount += 1 else: oneCount += 1 # 2번째 데이터부터 체크 for i in range(len(data)-1): # 데이터의..
-
[알고리즘] 이코테 - 곱하기 혹은 더하기알고리즘 2022. 7. 21. 14:44
문제 곱하기 혹은 더하기 문제는 각 자리가 숫자 ( 0 ~ 9 )로 이뤄져 있을 때, 문자열 S가 왼쪽부터 오른쪽으로 하나씩 숫자를 확인하며 숫자 사이에 '*' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 만들고, 사칙연산의 규칙을 따르지 않고, 순차적으로 + 혹은 * 을 이룬다. 접근 지금 현재 존재하는 값이 0이거나 혹은 입력 받아온 값이 0일때는 +, 그 외의 조건에서는 * 을 하여서 가장 큰 수를 구할 수 있다. 풀이 s = input() s_list = list(s) count = int(s_list[0]) for i in range(1, len(s_list)): if s_list[i] == '0' or count == 0: count += int(s_list[i]) else: count..
-
[자바] 컬렉션 프레임웍자바 2022. 7. 21. 11:47
컬렉션 프레임웍 데이터 군을 저장하는 클래스들을 표준화한 설계. ( 컬렉션 - 데이터 그룹, 프레임웍 - 표준화된 프로그래밍 방식 인터페이스 특징 List 순서가 있는 데이터의 집합. 데이터의 중복 허용 구현 클래스: ArrayList, LinkedList, Stack, Vector Set 순서를 유지하지 않는 데이터의 집합, 데이터 중복 허용하지 않음 구현 클래스 : HashSet, TreeSet Map 키-값 쌍으로 이뤄진 데이터의 집합, 순서는 유지되지 않고 키는 중복을 허용하지 않고, 값은 중복허용 구현 클래스 : HashMap, TreeMap, HashTable, Properties Vector, HashTable 말고, ArrayList, HashMap 사용 권장 1. 컬렉션 프레임웍의 핵심 ..
-
[자바] 날짜와 시간 & 형식화자바 2022. 7. 21. 00:28
1. Calendar 와 Date Calendar 추상클래스 이므로 직접 객체 생성이 불가능하여, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다. 예시 ) GregorianCalendar, BuddhistCalendar 메서드를 통해서 인스턴스를 반환받게 하는 예시 Calendar cal = new Calendar(); // error 추상클래스는 인스턴스를 생성할 수 없다. // OK. getInstance()는 Calendar클래스를 구현한 클래스의 인스턴스를 반환한다 Calendar cal = Calendar.getInstance(); // 예시 class MyApplication { public static void main(String[] args) { Calendar cal =..