전체 글
-
[알고리즘] 백준 11399 - ATM 문제알고리즘 2022. 7. 25. 18:51
문제 접근 1. 처음에는 피보나치 수열 처럼 앞의 수를 계속 더해가면서 해결하는 식으로 하려고 했는데, 코드가 떠오르지 않아서,, 2. 입력받은 수들을 오름차순으로 정렬을 한다음에 각 자리의 수들은 n - i 만큼 곱해주고 그 요소들을 합치는것을 생각했다. 풀이 n = int(input()) t = list(map(int, input().split())) t.sort() sumN = [] for i in range(len(t)): sumN.append(t[i]*(n-i)) print(sum(sumN))
-
[자바] 스트림자바 2022. 7. 25. 16:59
스트림 스트림 - 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의 해놓은 것이다.[ 스트림은 '데이터의 흐름' 이다 ] -> 람다를 이용해서 코드의 양을 줄이고 간결하게 표현이 가능하다. String[] strArr = { "aaa", "bbb", "ccc" }; List strList = Arrays.asList(strArr); // stream 생성 Stream strStream1 = strList.stream() Stream strStream2 = Arrays.stream(strArr); // 스트림 사용전 Arrays.sort(strArr); Collections.sort(strList); for(String str: strArr) System.out.println(st..
-
[자바] 람다자바 2022. 7. 25. 14:37
람다식 - 메서드를 하나의 식 으로 표현하는 것이다. ( 메서드의 이름과 반환값이 없어지므로, 익명함수다 ) 간단한 람다식 예시 int method() { return (int)(Math.random() * 5 ) + 1; } int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random() * 5 ) + 1 ); // 바로 윗부분이 람다식이다. 람다식 작성하기 '익명 함수' 답게 매개변수 선언부와 몸통 { } 사이에 '->'를 추가한다 반환타입 메서드이름(매개변수 선언) { 문장들 } (매개변수 선언) -> { 문장들 } return문 대신 식으로 할 수 있는데, 잌대는 끝에 ; 을 붙이지 않는다. 람다식에 선언된 매개변수의 타입은 추론이 가능..
-
[알고리즘] 백준 - 10610 - 30알고리즘 2022. 7. 23. 20:51
문제 문제 1. 가장 먼저 알아야 하는 점은 모든 자리수의 합이 3의 배수가 되어야 한다는점! 2. 입력 받는 값에 0 이 없다면 절대 30의 배수가 될 수 없다. 3. 30의 배수가 된다면 ( 모든 자리수의 합이 3의 배수가 되어서 ) 역순으로 취한것이 가장 큰 값이 된다 풀이 # 모든 자릿수의 합이 3의 배수가 되면 된다. n = input() n = sorted(n, reverse=True) ans = 0 if '0' not in n: print(-1) else: for i in n: ans += int(i) if ans % 3 != 0: print(-1) else: print(''.join(n))
-
[알고리즘] 백준 2875 - 대회 or 인턴알고리즘 2022. 7. 23. 20:14
문제 접근 1. n과 m을 각자 2:1비율로 보면 너무나 많은 처리를 해줘야 한다 2. n+m-k를 total 이라고 보고 total을 total%3을 빼주고 그 값을 3을 목을 구하는데, 각각 보고 하기보다는 통합해서 수를 보고 알아서 나누는것에 대해서 생각하기 3. n//2 or m 값이 최대 팀 개수가 되는데 이것이 2번에서 하는 값보다 작을 때의 예외만 처리해주면 된다 풀이 import sys input = sys.stdin.readline n, m, k = map(int, input().split()) # 대회 남1 여2 , 인턴쉽 k 명 total = n + m - k teamCount = (total - (total % 3))//3 if n//2 < teamCount or m < teamCo..
-
[자바] 쓰레드자바 2022. 7. 23. 17:27
1. 프로세스와 쓰레드 프로세스 - 실행 중인 프로그램. 프로그램을 실행하면 OS로부터 자원(메모리)를 할당받아 프로세스가 된다. 쓰레드 - 자원을 이용해서 실제로 작업을 수행하는 것 프로세스는 데이터, 메모리 등의 자원, 쓰레드로 구성되어 있다. 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스' 라고 한다. 프로세스의 메모리 한계에 따라서 생성할 수 있는 쓰레드의 수가 결정된다. 멀티 태스킹, 멀티 쓰레딩 멀티쓰레딩 - 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업하는 것 실제로 동시에 처리되는 작업의 개수는 코어의 개수(cpu 개수) 와 같지만, '쓰레드 수 > 코어의 수' 일때, 코어가 번갈아서 쓰레드를 처리하기에 동시에 처리하는..
-
[자바] 애너테이션자바 2022. 7. 23. 00:47
1. 표준 애너테이션 @Override 조상의 메서드를 오버라이딩 하는 것이라는 걸 컴파일러에게 알려줌 ( 오버라이딩시 꼭 쓰기 ) @Deprecated 더 이상 사용되지 않는 필드나 메서드 ( 더 이상 사용하지 않을 것을 권유, 강제성은 없다 ) -Xlint 를 사용해서 에러에 대한 내용을 알 수 있다 @FunctionalInterface 함수형 인터페이스를 올바르게 선언했는지 체크해준다 @SuppressWarnings 컴파일러가 보여주는 경고메세지가 나타나지 않게 해준다 ( 특정 메소드에서 나타나는 경고를 억제 시켜준다 ) @SuppressWarnings({"deprecation", "unchecked"}) // 2개도 가능 @SafeVarargs 오버라이딩될 수 있는 메서드에는 사용할 수 없다 2...
-
[자바] 열거형 ( enum )자바 2022. 7. 23. 00:03
열거형 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 값 뿐만 아니라, 타입까지 체크하기 때문에 타입에 안전하다 ( 값 들이 변경되지 않는다 (final) 의 성향이 있음 ) 열거형 사용하는 방법 enum 열거형이름 { 상수명1, 상수명2, ... } enum Direction { EAST, SOUTH, WEST, NORTH } 사용하는 방법 ' 열거형이름.상수명 ' 열거형 상수간의 비교는 ' == ' 사용할 수 있다. '>' '