Study 썸네일형 리스트형 [JAVA 스터디] 250116 BufferedReader - 오늘의 학습 키워드BufferedReader 클래스의 특징Buffered Reader와 ScannerJava를 처음 시작하면서 입력을 받을 땐 항상 Scanner를 사용했다.만약 정수를 하나 입력받는 다고 하면 다음과 같이 작성할 수 있다.Scanner sc = new Scanner(System.in);int i = sc.nextInt();Scanner 클래스가 제공하는 여러 메서드들을 통해 정수 입력, 줄 단위 입력, 문자열 입력 등등 원하는 동작을 수행할 수 있다.의문점사실, Scanner만 사용했다면 궁금해하지도 않았을 의문점이 있다.Java로 알고리즘 문제를 풀 때, 평소처럼 Scanner를 통해 입력을 받으면 시간초과가 나는 Case를 자주 격어보았다. 메인 로직은 모두 동일하고, 입출력의 .. 더보기 [JAVA 스터디] 250115 Scanner - 오늘의 학습 키워드Scanner 클래스의 특징기본적인 데이터 타입들을 Scanner 의 메소드를 사용하여 입력받을 수 있다. 예로 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next() 나 nextLine() 을, int(정수)로 입력받고 싶다면 nextInt() 를 사용하여 입력받으면 알아서 해당 타입으로 입력된다. Scanner 을 사용할 시 util 패키지를 경로의 Scanner 클래스를 호출해야 한다. 자바에서 쓰이는 대부분의 클래스는 lang 패키지가 아니라면 import 을 통해 호출해주어야 한다. Scanner 의 경우는 java.util 패키지에 있다. 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다. Scanner 의 입력 메소드들은 대부분 공백과.. 더보기 [JAVA 스터디] 250114 Buffered Reader - 문자열 출력 - 오늘의 학습 키워드그대로 출력하기 2 성공- 공부한 내용 본인의 언어로 정리하기BufferedReader:Scanner와 유사.Bufferedwriter:System.out.println();과 유사둘은 모두 기존에 쓰던 scanner와 System.out.println()보다 속도 측면에서 훨씬 빠르기 때문에(입력된 데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율성을 높임)많은 양의 데이터를 처리할 때 유리하다. 하지만 그에 비해 BufferdReader은 Enter만 경계로 인식하고 받은 데이터사 String으로 고정되기 때문에 입력받은 데이터를 가공하는 작업이 필요한 경우가 많다. 사용법에 앞서 이 둘을 사용하려면 다음의 import가 추가적으로 필요하다.import.. 더보기 [JAVA 스터디] 250113 Math.random - 랜덤으로 난수 생성하기 - 오늘의 학습 키워드-> 자바로 난수생성 - 공부한 내용 본인의 언어로 정리하기 1. Math.random 개념 개념자바에서 난수를 만드는 방법은 2가지가 있습니다.Random 클래스 사용Math.random() 차이점1. Random 클래스는 int, long, float, double, boolean type의 난수를 얻을 수 있지만 Math.random()은 0.0에서 1사이의 난수를 얻습니다.2. Random 클래스는 seed를 설정 할 수 있지만 Math.random()은 현재시간으로 seed가 고정되어있습니다. - seed란 난수를 만드는 알고리즘에 사용되는 값으로 seed가 같으면 같은 난수를 생성합니다. 1. Random 클래스 사용import java.util.Random; 이 문.. 더보기 [백준_JAVA] 20056번 마법사 상어와 파이어볼 마법사 상어와 파이어볼시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초512 MB241119803605736.906%문제어른 상어가 마법사가 되었고, 파이어볼을 배웠다.마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사했다. 가장 처음에 파이어볼은 각자 위치에서 이동을 대기하고 있다. i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si이다. 위치 (r, c)는 r행 c열을 의미한다.격자의 행과 열은 1번부터 N번까지 번호가 매겨져 있고, 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결되어 있다.파이어볼의 방향은 어떤 칸과 인접한 8개의 칸의 방향을 의미하며, 정수로는 다음과 같다.7016 2543마법사 상어가 모든 파이어볼에게 이동을 명령하면 다음이.. 더보기 [java 스터디 1주차] java 힙(heap)과 다익스트라 알고리즘 개념 힙(Heap)힙은 완전 이진트리 형태로 최대, 최솟값을 빠르게 찾아내는데 유용한 자료구조이다.힙은 중복값을 허용한다.부모-자식 간 (레벨 별) 정렬은 보장하고, 형제간의 정렬은 보장하지 않아서 반 정렬 상태라고 볼 수 있다.힙은 최소 힙(Min Heap), 최대힙(Max Heap) 두가지가 있다.최소 힙은 루트노드가 최솟값이 되고, 부모노드의 key는 자식노드의 key보다 작아야 한다는 규칙이 있다.최대 힙은 루트노드가 최댓값이 되고, 부모노드의 key가 자식 노드의 key보다 커야 한다는 규칙이 있다. 최소 힙(Min Heap)최소 힙(Min Heap)은 부모 노드의 key가 자식 노드의 key보다 작거나 같은 완전 이진트리이다.다른 규칙은 없다. 단지 부모노드가 자식 노드의 key보다 작기만 하면 .. 더보기 [세미나]개발자 커리어 개척 캠프 -항해99 후기 안녕하세요. 8월 31일 토요일 개발자 커리어 관련 세미나가 있다고 해서 신청 후 참석해 보았다. 갔더니 세미나 커리큘럼이 담긴 팜플렛을 주었다. 처음에는 주변 앉은 사람끼리 git hub 를 교환하는 시간을 가졌다. 그러나, 깃허브를 꾸준히 작성하는 분이 아닐수도 있었고, 무엇보다 나는 백엔드 개발자인데 프론트엔드 깃허브를 굳이 팔로우 할필요 없어 교환은했지만 볼일이 있을까? 싶었다. 조별로 기술 토론을 했는데, 백엔드와 프론트엔드 개발자가 기술토론을 하기는 쉽지않은 것 같다. 개인적으로 백엔드 프론트엔드 나누고 사용하는 기술스택도 세미나 신청시 접수 받아 그 위주로 좌석 배치도 하는것이? 좋을 수도 있겠다. 세미나의 강의는 5개였다. 책임분리의 마법 : 깔끔한 .. 더보기 [백엔드TIL] 싱글톤패턴 구현 방법 학습 싱글톤 패턴은 생성(Creational) 패턴 중 하나로써 객체를 오직 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴이다. 간단히 말해서 애플리케이션 전체에서 단 하나의 객체만 생성하고 필요할 때마다 이 객체에 접근하여 사용하겠다는 의미이다. 이번 글은 싱글톤 패턴을 구현하는 방법을 중점으로 정리할 것이기 때문에 싱글톤 패턴에 대해 좀 더 자세히 알고 싶다면 다음 글을 참고하길 바란다. https://sorjfkrh5078.tistory.com/107 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 생성(Creational) 패턴 중 하나로써 객체를 오직 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴이다. .. 더보기 [백엔드TIL] SET, TreeSet, LinkedHashSet 개념 Set은 특별한 순서 없이 고유한 값을 저장할 수 있는 추상 자료구조다. 유한 집합의 수학적 개념을 컴퓨터로 구현한 것이다. 대부분의 다른 컬렉션 유형과 달리 집합에서 특정 요소를 검색하는 대신 일반적으로 집합의 구성원 자격에 대한 값을 테스트한다. 일부 집합 자료구조는 구성된 후 변경되지 않는 고정 집합 또는 고정 집합을 위해 설계됐다. 정적 집합은 주어진 값이 집합에 있는지 확인하거나, 랜덤하게 값을 열거하는 것과 같은 요소에 대한 쿼리 작업만 허용한다. 동적 또는 변경 가능한 집합(mutable set)이라 하는 다른 변형을 사용하면 집합에서 요소를 삽입, 삭제할 수도 있다. 다중 집합(multiset)은 요소가 여러 번 나타낼 수 있는 특별한 집합이다 고유한 값을 저장한다면 중복되는 값은 집어넣을.. 더보기 [백엔드TIL]다익스트라 알고리즘(Dijkstra Algorithm) 원리 [Java]다익스트라 알고리즘(Dijkstra Algorithm) Algorithm/그래프&최단경로 2021. 3. 12. 00:40 *다익스트라 알고리즘(Dijkstra Algorithm) -> 다익스트라 알고리즘은 음의 가중치(음의 간선, 음의 값)가 없는 그래프의 한 노드에서 각 모든 노드까지의 최단거리를 구하는 알고리즘을 말한다. -> 초기 모델은 O(V^2)의 시간복잡도를 가졌다. 이후 우선순위 큐 등을 이용한 고안된 알고리즘이 탄생했고, 현재는 O((V+E)log V)의 시간복잡도를 가지고 있다(만일 연결 그래프라면 O(ElogV)까지 시간 복잡도를 줄일 수 있다고 한다). 일반적으로는 그래프가 희소 그래프인 경우에 우선순위 큐를 이용하는 것이 낫다고 한다. ※음의 가중치를 가지면 안되는 이유.. 더보기 이전 1 2 3 4 5 ··· 17 다음