BFS | 자바
·
💻 CS/Algorithm
(이코테 2021 강의 몰아보기) 3. DFS & BFS)를 보면서 작성한 글입니다.BFS란BFS는 이전에 포스팅 했던 DFS와 함께대표적인 그래프 탐색 알고리즘 중 하나입니다. BFS라는 말에서도 알 수 있듯이 너비(Breadth)를 우선적으로 탐색합니다.너비를 우선적으로 탐색한다는 말은 그래프에서 가까운 노드부터 우선적으로 탐색하는 것이며, 아래 그림과 같습니다.번호가 낮은 인접 노드부터 DFS로 위 그래프를 탐색하면 1 -> 2 -> 3 -> 8 -> 7 -> 4 -> 5 -> 6 순으로 탐색하게 됩니다.BFS 구현BFS는 Queue 자료구조를 이용해서 구현합니다.import java.util.*;class Main { public static boolean[] visited = new boole..
DFS | 자바
·
💻 CS/Algorithm
(이코테 2021 강의 몰아보기) 3. DFS & BFS)를 보면서 작성한 글입니다.DFS란DFS는 대표적인 그래프 탐색 알고리즘 중 하나입니다. 탐색이란 많은 양의 데이터 중 원하는 데이터를 찾는 과정을 말합니다. DFS라는 말에서도 알 수 있듯이 깊이(Depth)를 우선적으로 탐색합니다.깊이를 우선적으로 탐색한다는 말은 아래 그림과 같습니다.번호가 낮은 인접 노드부터 DFS로 위 그래프를 탐색하면 1 -> 2 -> 7 -> 6 -> 8 -> 3 -> 4 -> 5 순으로 탐색하게 됩니다.DFS 구현DFS는 스택 혹은 재귀함수로 구현할 수 있습니다. 하지만, 보통 편리성 때문에 스택보다 재귀함수를 이용해 구현하는 경우가 많습니다.import java.util.*;public class Main { pu..
[프로그래머스 Lv0] 진료순서 정하기 | 자바
·
📝 Coding Test/Programmers Lv0
문제진료순서 정하기풀이1import java.util.*;class Solution { public int[] solution(int[] emergency) { int[] answer = new int[emergency.length]; int[] copied = emergency.clone(); Arrays.sort(copied); for(int i = 0; i 풀이2처음에 푼 이중 for문보다 HashMap으로 문제를 해결하는게 더 효율적입니다. 이중 for문을 사용하면 시간 복잡도가 최대 O(N^2)가 되는데, HashMap을 사용할 경우 O(NlogN) 또는 O(N)까지 개선이 가능하기 때문입니다.import java.util.*;class S..
[99클럽 코테 스터디] 4일차
·
📖 Study
오늘의 학습 키워드DFS문제 - 비기너숫자 문자열과 영단어풀이class Solution { public int solution(String s) { String[] words = new String[] {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; for(int i = 0; i 문제 - 미들러알고리즘 수업 - 깊이 우선 탐색 1풀이import java.util.*;class Main { public static int[] answer; public static int n; // 정점의 수 public static int m; // 간선의 수 public static..
[99클럽 코테 스터디] 3일차
·
📖 Study
오늘의 학습 키워드구현이분탐색문제 - 비기너크기가 작은 부분 문자열풀이class Solution { public int solution(String s) { int answer = 0; String[] strArr = s.split(""); int idx = 0; while(idx 주어진 문제를 따라 그대로 구현했습니다.문제 - 미들러경로 찾기풀이import java.util.*;class Solution { public long solution(int n, int[] times) { long answer = 0; Arrays.sort(times); long left = 0; ..
HTTP 메서드
·
💻 CS/Network
모든 개발자를 위한 HTTP 웹 기본 지식 강의 중의 일부를 정리한 글입니다.HTTP 메서드의 종류API를 설계할 때 리소스(Resource 혹은 Representation)를 식별하는 것이 가장 중요합니다. 리소스와 행위를 분리해서 설계해야하는데 리소스의 행위를 나타내는데 아래의 메서드를 이용하면 됩니다.GET특정 리소스의 표시를 표시를 요청합니다. 즉, 특정 리소스를 조회할 때 사용합니다.POST특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태 변화나 부작용을 일으킵니다.메세지 바디를 통해 서버로 요청 데이터를 전달하고, 서버는 요청 데이터를 처리합니다.메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행합니다.주로 전달된 데이터는 신규 리소스 등록, 프로세스 처리에 사용됩..
[99클럽 코테 스터디] 2일차
·
📖 Study
오늘의 학습 키워드구현이분탐색문제 - 비기너크기가 작은 부분 문자열풀이class Solution { public int solution(String t, String p) { int answer = 0; int pLen = p.length(); int maxIdx = t.length() - pLen + 1; for (int i = 0; i = Long.parseLong(tmp)) answer++; } return answer; }}처음 문제를 풀었을 때, 3개의 테스트 케이스는 통과했지만, 정답을 제출할 때, 런타임 오류가 발생했습니다.그 이유는 문제의 조건에 p의 길이는 최대 18자리라는 조건이 있었습니다.수의 크기가..
[99클럽 코테 스터디] 1일차
·
📖 Study
오늘의 학습 키워드구현이분 탐색문제 - 비기너문자열 내 p와 y의 개수풀이class Solution { boolean solution(String s) { char[] chArr = s.toCharArray(); for(int i = 0; i 문제 - 미들러풀이부동소수점 오차자바에서 실수를 표현할 때 부동소수점 방식을 사용합니다. 부동소수점 방식을 사용하면 보다 정밀하게 소수를 표현할 수 있지만, 완전히 정확하게 표현하는 것은 아닙니다. 미세하게 오차가 발생합니다.이러한 문제를 해결하려면 정수형 타입 int, long으로 치환하거나 BigDecimal 클래스를 이용하면 됩니다.Scanner, BufferedReader, StringTokenizer참고☕ JAVA 기본 자료형..
[Java] String 객체가 비었는지 확인하는 방법
·
👨‍💻 Programming/Java
null?자바의 primitive 타입의 경우 초기값으로 0이나 false가 들어갑니다. 하지만, reference 타입의 경우 주소값이 들어와야하고, 주소값이 초기화 되지 않았을 경우 주소가 없다라고 표현을 해야하는데 이 때 null을 사용합니다.즉, null이라는 것은 아무 주소도 가리키고 있지 않다라는 의미로 이해하면 됩니다.NullPointExceptionNullPointException(NPE)은 컴파일 시점이 아닌 런타임 시점에 발생하기 때문에 까다로운 오류입니다. NPE는 다음과 같은 상황에서 발생합니다.null 객체의 인스턴스 메서드를 호출할 경우null 객체의 필드에 접근하거나 값을 변경할 경우빈 배열 객체의 길이 속성을 가져올 경우...String 객체가 비었는지 확인하는 방법== nu..