Algorithm & Data Structure
![[JAVA] 프로그래머스 - 완주하지 못한 선수 LV1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb47CeV%2FbtrrpVflEfb%2FjD6hvBqOwjqVPzLmtO1SD0%2Fimg.png)
[JAVA] 프로그래머스 - 완주하지 못한 선수 LV1
문제 이해 및 제한 사항 프로그래머스의 해시 문제, 완주하지 못한 선수 LV1 https://programmers.co.kr/learn/courses/30/lessons/42576?language=java 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 ..
![[Concept] 인접 행렬과 인접 리스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU2Sli%2Fbtrp7GDS72H%2FUZ7AfmTyXt7CpEHrwHtzP0%2Fimg.png)
[Concept] 인접 행렬과 인접 리스트
그래프 그래프란 요소들이 서로 복잡하게 연결되어 있는 관계를 표현하는 자료구조입니다. 그래프에서 쓰이는 용어는 정점 (vertex) : 노드라고도 하며 데이터가 저장되는 원소 간선 (edge) : 링크라고도 하며 정점 간의 관계 그외에도 인접 정점, 차수, 경로 등의 용어가 있습니다. 그래프 구현 그래프를 구현하는 방법은 배열(Array)을 사용하는 인접 행렬, 연결 리스트를 사용하는 인접 리스트가 있습니다. 인접 행렬 그래프의 정점을 2차원 배열로 만들어서, 행과 열은 정점을 의미하며 각각의 원소들은 정점 간의 간선을 나타냅니다. 장점 2차원 배열에 모든 장점들의 간선 정보가 있기 때문에 두 정점을 연결하는 간선을 조회 시 O(1)의 시간복잡도로 가능합니다. 구현이 비교적 간단합니다. 단점 간선 수와 ..
![[프로그래머스] SQL 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSwAN%2FbtrydJLPgwu%2FGeKMDVbeVHsvWmS5TguB2K%2Fimg.png)
[프로그래머스] SQL 문제
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID ASC; SQL 문제를 포함한 알고리즘 문항을 시험보는 곳이 꽤 있는 것 같아서 관련 자료 글을 찾아보다 프로그래머스에 있는 SQL 문제가 있어 문제와 답안을 기록하고 있다. 문제 리스트 (추가중) 고양이와 개는 몇 마리 있을까 동명 동물 수 찾기 입양 시각 구하기(1) 입양 시각 구하기 NULL 처리하기 이름이 있는 동물의 아이디 이름이 없는 동물의 아이디 루시와 엘라 찾기 오랜 기간 보호한 동물(2) (Lv 3) DATETIME에서 DATE로 형..
java.lang.StringBuilder (가변적인 문자열)
StringBuilder 클래스 StringBuilder와 StringBuffer 클래스는 String 클래스와 같이 문자열을 다루는 클래스이다. But, String 클래스는 문자열을 넣을 경우, 생성자의 크기에 맞게 길이가 생성되며 한번 생성하고 나면 문자열 값을 변경하지 못하는 단점이 있다. 이를 보완하는 것이 StringBuilder와 StringBuffer 클래스이다. 즉, 한번 생성한 인스턴스 안의 문자열 (char 배열)을 추가&변경할 수 있어 String클래스의 문제를 보완한다. 두 클래스는 거의 비슷하지만(쓰임과 메소드가 같지만) StringBuffer는 동기화 처리를 할 수 있다. 즉, 여러 곳에서 동시에 같은 문자열 인스턴스에 접근할 때 중복 접근을 막을 수 있는 장치를 가지고 있다...
![[JAVA] baekjoon 10871](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0yp9R%2FbtrgMzrG8xk%2FJrfs5SHcrJjaW5c0YdsioK%2Fimg.png)
[JAVA] baekjoon 10871
[문제] [나의 생각] Scanner 라이브러리를 이용해서 해결할 수도 있다. BufferedReader를 사용했을 때 조금 더 시간이 덜 걸린다는 사실! 본인은 두번째 줄의 입력문에 대해서도 for문을 사용할 수 있다 생각하지 못해서 헤맸다. StringBuilder는 변경 가능한 문자열이다. (String은 변경 불가능) String을 합치는 작업 시에 유용하게 쓰인다. 방법은 1. StringBuilder의 객체 생성 2. StringBuilder의 객체의 append()로 연결하고자하는 문자열을 붙인다. -> 변경 가능한 문자열 완성! import java.util.*; import java.io.*; public class baekjoon10871 { public static void main(..
![[JAVA] baekjoon 15552](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhVHZW%2FbtrePWoJNQC%2FfQl2Bj1m3IvR9fGwl7mqr0%2Fimg.png)
[JAVA] baekjoon 15552
브론즈 2 문제. 빠른 A+B 15552번: 빠른 A+B (acmicpc.net) 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제를 풀기 전, 필요한 개념을 공부해야한다. Buffer 데이터를 한곳에서 다른 곳으로 전송하는 동안 일시적으로 데이터를 보관하는 임시 메모리 영역 버퍼를 이용해서 읽고 쓰면 속도 향상에 효율적 메모리 버퍼에 데이터를 한데 묶어서 이동시키는 것! Buffer Flush (버퍼 플러시) 버퍼에 남아있는 데이터를 출력 (버퍼를 비우는 동작) BufferedReader : 버퍼를 이용한 입력 엔터만 경계..