전체 글97 Stack vs Queue Stack vs Queue Stack(스택) FILO(First In Last Out) 구조로 이루어진 자료구조이다. 데이터를 삽입(push) 할 때, 자료구조의 맨 뒤에 붙게 되고, 데이터를 호출(pop) 할 때, 자료구조의 맨 뒤의 값이 빠져나오게 된다. ex) 웹 브라우저의 방문기록 KEY WORD : FILO Queue(큐) FIFO(First In First Out) 구조로 이루어진 자료구조이다. 데이터를 삽입(add) 할 때, 자료구조의 맨 뒤에 붙게 되고, 데이터를 호출(poll) 할 때, 자료구조의 맨 앞의 값이 빠져나오게 된다. ex) 선착순 시스템 KEY WORD : FIFO CS 지식/자료구조_알고리즘 2022. 6. 24. Array vs LinkedList Array vs LinkedList Array(배열) 데이터들을 옆으로 나란하게 저장한다. 메모리 내의 연속된 주소에 저장한다. 사용하기 전 미리 할당을 받아 사용한다. -> 할당된 공간 사용하지 않는 경우, 메모리 자원 부족할 수 있다. -> 할당된 공간보다 더 필요한 경우, 새로 만들어 복사해야 한다. 값의 입출력 용이, 중간에 값 삽입/삭제 불편 속도가 빠르다. ex) 한 학급의 학생들의 키 (학급에 학생을 삽입/삭제 할 경우가 많지 않기 때문이다.) KEY WORD : 정적 할당, 연속 저장 LinkedList(연결리스트) 저장된 값과 다음 값을 연결하면서 값들을 저장한다. 필요한 만큼 할당 받아서 연결한다. 데이터 중간에 삽입/삭제가 용이하다. 물리적 속도가 느리다. ex) 도서관리 프로그램 (.. CS 지식/자료구조_알고리즘 2022. 6. 24. Markdown 문법 Markdown 마크다운 이란? 일반 텍스트 편집기를 사용하여 서식 있는 텍스트를 만들기 위한 경량 마크업 언어이다. 마크다운을 편집하기 편한 사이트 : StackEdit 주석 문장 앞 뒤에 ""를 붙여준다. 제목 #을 원하는 개수만큼 문장 앞에 붙여준다. (1 ~ 6개) 문장 다음 줄에 - 또는 =를 넣어준다. (제목에 밑줄 까지 표현됨.) 인용문 >를 문장 앞에 붙여준다. 숫자 목록 "1." 형태로 문장앞에 붙여준다. :warning: 숫자가 중간에 누락되어도 연속적인 숫자가 출력된다. ex) "1." "2." "4." "8." -> 1. 2. 3. 4. 글머리 기호 "*", "+", "-"를 문장 앞에 붙여준다. 줄 바꿈 ""을 입력하거나 스페이스 바 두 칸을 붙여준다. 코드 블록 Tap을 문장 앞.. Markdown 2022. 6. 24. Spring 기초 개념 Spring Framework 자바 객체를 담고 직접 관리하는 경량 컨테이너이다. 객체의 생성, 소멸, 라이프사이클을 관리하고, Spring으로부터 필요한 객체를 가져와 사용가능하다. IOC (Inversion of Control) 제어의 역전이라는 뜻으로, 사용자가 제어의 흐름을 컨트롤 하지 않고 특정 객체에 제어 권한을 전부 위임한다. IOC의 구성요소 - DL(Dependency Lookup) 의존성 검색이라는 뜻으로 컨테이너에서 제공하는 API를 이용해 빈을 검색하는 방법이다. #### - DI(Dependency Injection) 의존성 주입이라는 뜻으로, 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 통해 자동으로 연결한다. POJO(Plain Old Java Object) 평범한 자.. Spring 2022. 6. 24. BJ_S2_10819_차이를최대로 - Java [문제링크] https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net [문제] N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| [입력] 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크.. 알고리즘/DFS_BFS 2022. 6. 8. BJ_G4_5052_전화번호목록 - Java [문제링크] https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net [문제] 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸.. 알고리즘/문자열 2022. 6. 8. BJ_S1_1389_케빈베이컨의6단계법칙 - Java [문제링크] https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net [문제] 케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다. 케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다. 예를 들면, 전혀 상관없을 것 같은 인하대학교의 이강호와 서강대학교의 민세희는 몇 단계만에 이어질 수 있을까? 천.. 알고리즘/DFS_BFS 2022. 6. 7. BJ_S1_10844_쉬운계단수 - Java [문제링크] https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net [문제] 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. [입력] 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. [출력] 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. [예제 입력 1] 1 [예제 출력 1] 9 [예제 입력 2] 2 [예제 출력 2] 17 [설명] 이 문제.. 알고리즘/DP 2022. 6. 7. MYSQL에서 한글 설정 (한글이 ?로 표시될 때) 대학 동기들과 팀 프로젝트를 하던 도중 닉네임에 한글을 입력하고 MYSQL을 가보니 서버 내에서 ???가 출력되었다. 그전에는 항상 알파벳으로 테스트 하다 보니 한글 설정이 되지 않은 것을 깨달았다. 그래서 검색을 통해서 MYSQL에서 한글을 설정하는 방법을 공부하였다. 실제 서비스였다면 치명적인 에러였을거라 다음부터는 프로젝트를 시작할 때, 항상 설정부터 잘 해주고 해야겠다. * MYSQL에서 한글 설정하는 법 MYSQL에 접속을 한 뒤 아래의 명령어를 입력해주면 해결된다. ALTER SCHEMA [데이터베이스 이름] DEFAULT CHARACTER SET utf8 ; * Ubuntu 환경에서 MYSQL 한글 설정하는 법 1. Mysql에 접속하여 status로 상태를 확인한다. status Serve.. DATABASE/MYSQL 2022. 6. 7. BJ_G5_3020_개똥벌레 - Java [문제링크] https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net [문제] 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 번갈아가면서 등장한다. 아래 그림은 길이가 14미터이고 높이가 5미터인 동굴이다. (예제 그림) 이 개똥벌레는 장애물을 피하지 않는다. 자신이 지나갈 구간을 정한 다음 일직선으로 지나가면서.. 알고리즘/누적합 2022. 6. 6. BJ_S3_2559_수열 - Java [문제링크] https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net [문제] 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 .. 알고리즘/누적합 2022. 6. 6. BJ_S5_1789_수들의합 - Java [문제링크] https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net [문제] 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? [입력] 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. [출력] 첫째 줄에 자연수 N의 최댓값을 출력한다. [예제 입력 1] 200 [예제 출력 1] 19 [설명] 이 문제는 그리디 문제이다. 사실 이 문제는 for문으로 해결하려 했지만, 왜인지 모르게 100%에서 '틀렸습니다'가 나온다. 그래서 while문을 사용하게 되었다. 혹시 반례나 왜 틀렸는지 아시는분이 있으시다면.. 알고리즘/GREEDY 2022. 6. 6. 이전 1 2 3 4 5 6 7 ··· 9 다음 💲 추천 글