일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#1939#중량제한
- 백준#boj#12755
- 백준#boj#16932#모양만들기
- 백준#BOJ#12865#평범한배낭
- 백준#BOJ#2615#오목
- Today
- Total
목록분류 전체보기 (249)
순간을 성실히, 화려함보단 꾸준함을
15주라는 시간 동안 진행했던 "백기선님과 함께 하는 자바 스터디"를 무사히 마쳤습니다. 사실 처음 스터디를 시작할때만 해도 15주라는 시간동안 꾸준히 할 수 있을까? 나중에 가면 스스로 지쳐서 그냥 그만 두지 않을까? 하는 걱정도 있었지만 매주마다 조금씩 정리하고 공부하며 꾸준하게 업로드를 하여서 이런 결과를 만들어 낼 수 있었던 것 같습니다. 어떤 한 언어를 공부할때 그냥 대충 사용법만 알고 알고리즘 문제 풀 정도만 공부하면 되겠지 라는 성실하지 못한 생각을 가지고 있었는데 이번 계기로 기본기란 무엇인지 재대로 알수 있어서 좋았습니다. 앞으로도 나아가야 할 길이 먼 것 같습니다. 자바8 버전 문법에 익숙해져야 하며, JUnit 5 도 공부하고, 리플렉션이 정확히 무엇인지 더 나아가 스프링 프래임워크 ..
https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 : n자리의 수가 주어지고 k개를 지워서 가장 큰 수를 만들어라 해설 : 이런 문제를 자주 접해보지 않았더라면,,,,해맸을 수도 있는 문제입니다. 문제의 특성을 파악하고 확실히 기억하도록 노력합시다. 먼저 가장 큰수가 될 조건은 가장 큰 숫자부터 차례대로 만들어지면 되겠죠. 그러면 먼저 숫자들을 쌓아놓고 현재 위치해 있는 숫자가 쌓아놓은 숫자보다 크다면?? 쌓아놓은 숫자는 필요가 없어집니다. 그러면 버리면 되겠죠. 언제까지 버려야 될까요??? 바로 맨위의 숫자가 현재 ..
목표 자바의 람다식에 대하여 학습하시오 학습할 것(필수) - 람다식 사용법 - 함수형 인터페이스 - Variable Capture - 메소드,생성자 레퍼런스 람다식 람다식이란? - 람다식이란 간단히 말하면 '식(expression)'으로 표현한 것. 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 람다식은 메소드 이름과 반환값이 없으므로 '익명함수(anonymous function)'이라고도 한다. int[] arr = new int[5]; Arrays.setAll(arr,(i) -> (int)(Math.random()*5)+1);람다식 작성법 람다식은 '익명함수'이니 메소드에서 이름과 반환값을 제거하고 매개변수 선언부와 몸통 {} 사이에 '-..
https://www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5*5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작 www.acmicpc.net 문제 : 읽고 오세요 ㅠㅠ 해설 : 어우우우우우ㅜ울ㅇ눌ㄴ울 ....이런문제 한번 말리면 끝도 없이 말려서 너무 힘드네요 ㅠㅠ 처음에는 그냥 dfs+백트래킹 인줄 알았는데...이렇게 되면 현재 있는 위치에서만 갈수있는데를 바라볼뿐 다른 칸으로는 나아가지 못하는 문제가 있습니다. XXOXX OOOOO XXOXX XXXXX XXXXX 이런 경우는 전혀 찾지를 못하게 되는 것이죠 ㅠㅠㅠ 그래서 방법을 바꾸었..
평소 static 키워드와 final 키워드가 너무나도 헷갈려서 이참에 확실히 정리하고자 글을 씀 final 키워드 final 키워드는 단순히 상수화 시키는 키워드가 아니다. 그 이유는 final 키워드는 상수화를 시켜주는 것이 아닌 단 한번만 할당이 가능한 키워드 이기 때문이다. public class Store { final int value; public Store(int value){ this.value=value; } public int getValue(){ return this.value; } public static void main(String[] args) { Store store = new Store(3); Store store1=new Store(1); System.out.printl..
중복되는 코드를 줄여보자!!!! 과거 스프링 JAP(아직 나도 이 개념이 뭔지는 모르지만 요즘 JPA 모르면 바보라니깐 천천히라도 공부하려는 의지를 갖자!!!)가 나오기 이전에는 데이터베이스에 접근하려는 방식은 DAO(Data Access Object) 를 사용하였다. 그러나 이런 방식은 중복된 코드를 양상시키는 주된 이유였으며, 단순 노동으로 치부되기도 하였다. //Apple public class Apple { private Integer id; public Integer getId(){ return this.id; } } public class Banana { private Integer id; public Integer getId(){ return this.id; } } Apple 과 Banana..
목표 자바의 제네릭에 대해 학습하시오 학습할 것(필수) 제네릭 사용법 제네릭 주요 개념(바운디드 타입,와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭이란? 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어듬 제네릭의 장점 타입 안정성을 제공한다. 타입체크와 형변환을 생략할 수 있다. 때문에 코드가 간결해 진다. 제네릭 사용법 Class Box {} Box : 제네릭 클래스. 'T의 Box' 또는 'T Box' 라고 읽음 T : 타입 변수 또는 타입 매개변수(T는 타입 문자) Box : 원시 타입(raw type)제네릭 타입은 클래..
https://www.acmicpc.net/problem/14431 14431번: 소수마을 첫 번째 줄에 소수 마을의 위치 (X1,Y1)와 A마을의 위치 (X2,Y2)가 입력된다. 두 번째 줄에 경유할 수 있는 마을의 개수 N (0 ≤ N ≤ 4000)가 입력된다. 세 번째 줄부터 N+2번째 줄까지 경유 할 수 있는 마 www.acmicpc.net 문제 : 서로간의 거리가 소수이어야지만 건널수 있습니다. 이때 시작점에서 도착점 까지 도착할 수 있는 가장 최단거리를 구하세요 해설 : 일단 핵심은 다익스트라 문제입니다. 다만 서로다른 정점간의 간선의 가중치가 소수인 애들만 골라서 연결을 시켜주면 됩니다. 에라토스체네스의 체를 사용해도 괜찮고 O(sqrt(n))의 시간복잡도를 사용하여 소수를 판정해도 괜찮습니..
왜 버퍼(Buffer)를 쓰면 빨라지는 걸까??? 지난 포스팅에 버퍼(Buffer)에 관해 다루었지만 중요한 개념이라 좀 더 자세히 알아보도록 하자 왜 버퍼(Buffer)를 쓰면 빨라질까???우린 단순히 버퍼를 쓰면 입출력시 좀 더 빠르다는 것을 알 수 있다. 그리고 왜 빠른가 라고 물으면 한번에 모아서 보내기 때문에 빨라진다고 알고 있다. 그러나 이는 굉장히 위험한 생각이다. 왜냐면 단순히 버퍼라는 공간에 모아서 보내기 때문에 라는 이유로 입출력이 빨라지는 건 아니기 때문이다. 바로 시스템 콜(System Call) 의 횟수와 상관이 있기 때문이다. 버퍼를 사용하지 않을때는 키보드로 입력을 할때마다 시스템 콜의 동작이 발생한다.(시스템 콜이 무엇인지는 운영체제와 관련이 있는 내용이니 개인적으로 찾아보길..
https://www.acmicpc.net/problem/21277 21277번: 짠돌이 호석 DIY(Do It Yourself)는 호석이가 제일 좋아하는 컨텐츠이다. 이번 DIY는 동네 친구 하늘이랑 각자 직소 퍼즐을 하나씩 맞춰보기로 했다. 두 개의 퍼즐은 각자 N1 행 M1 열과 N2 행 M2 열의 격자 형태 www.acmicpc.net 문제 : 2개의 퍼즐이 주어지고 이 퍼즐을 겹쳤을때 딱 맞게 겹쳐져야 합니다. 이때 만들 수 있는 최소 넓이를 구하시오 해설 : 이건 어렵게 생각할 필요가 전혀 없습니다. 그냥 뇌를 비우고 하라는 데로 하면 됩니다. 무슨 뜻이냐면 모든 경우의 수를 다 해보면 됩니다. 문제 조건에서 N과 M이 떡하니 제한이 50이라는 것은 너 이거 무식하게 풀어!!라는 뜻이니까요. ..
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것(필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 입출력이란? - I/O란 Input 과 Output의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고 받는 행위를 뜻한다. 1) 스트림(Stream) 자바에서는 데이터를 전송하기 위해선 두 대상을 연결하고 데..
https://www.acmicpc.net/problem/21276 21276번: 계보 복원가 호석 석호촌에는 N 명의 사람이 살고 있다. 굉장히 활발한 성격인 석호촌 사람들은 옆 집 상도 아버님, 뒷집 하은 할머님 , 강 건너 유리 어머님 등 모두가 한 가족처럼 살아가고 있다. 그러던 어느 날 www.acmicpc.net 문제 : 하나의 그래프가 주어지는데 이 그래프는 트리입니다. 이때 [자식,조상]의 관계가 주어질때 주어진 조건에 맞게 출력하시오 해설 : 좀 뇌절이 오는 문제였습니다 ㅠㅠㅠ 일단 중요한건 그래프를 그릴수만 있다면 뭐 dfs를 사용하던지, 위상정렬을 사용하던지 아니면 map에 담아서 출력하던지 등등 다양한 방법을 선택해 쉽게 답을 도출할 수 있지만 , 전 그래프를 만드는 부분이 좀 까다..