# 코딩테스트 연습 > 해시 > 완주하지 못한 선수 더보기 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participa..
# 배경상황 Spring in Action 제5판 실습을 따라하던 중 131페이지에서 막혔다. 그 이유는 src/main/resource 경로의 data.sql과 schema.sql 파일의 쿼리문이 자동으로 읽히지 않았기 때문이다. # 해결방법 하기와 같이 application.properties 파일과 SecurityConfig.java 파일을 변경한다. - application.properties 파일 #h2 console 활성화 및 경로 설정 spring.h2.console.enabled=true spring.h2.console.path=/h2-console #h2 db 설정 spring.datasource.url=jdbc:h2:~test; spring.datasource.driverClassNam..
# 배경상황 Spring in Action 제5판을 구입하여 실습코드를 따라하던 중 101페이지의 H2 콘솔에 접근해 보라는 책의 지문대로 웹 브라우저에 http://localhost:8080/h2-console 를 입력하였으나 하기와 같은 에러가 출력되었다. # 배경지식 H2 database에 대하여 따로 설정을 하지 않으면 하기와 같이 기본적으로 설정이 된다고 한다. "spring.h2.console.enabled=true" 로 설정을 변경해 주어야 한다. # 해결방법 application.properties 파일에 "spring.h2.console.enabled=true" 로 설정을 변경한 후 서버를 재시작한다. # 결론 H2 database를 사용하려고 의존성을 추가하면 바로 사용할 수 있는 것은..
꼭 알아둬야 할 자료 구조: 스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐: FIFO 정책 스택: LIFO 정책 1. 스택 구조 스택은 LIFO(Last In, Fisrt Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 LIFO: 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책 FILO: 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책 대표적인 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요 기능 push(): 데이터를 스택에 넣기 pop(): 데이터를 스택에서 꺼내기 Visualgo 사이트에서 시연..
큐는 배열과 함께 기본적인 자료구조의 하나로서 운영체제와 네트워크에서 많이 쓰입니다. 1. 큐 구조 줄을 서는 행위와 유사 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대 2. 알아둘 용어 Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능 Visualgo 사이트에서 시연해보며 이해하기 (enqueue/dequeue 만 클릭해보며): https://visualgo.net/en/list VisuAlgo - Linked List (Single, Doubly), S..
자료구조, 데이터 구조, data structure 모두 같은 의미이다. 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라 체계적으로 데이터를 구조화해야한다. => 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐 효율적으로 데이터를 관리하는 예 ** 우편번호 : 5자리 우편번호로 국가의 기초구역을 제공 => 5자리 우편번호에서 앞 3자리는 시, 군, 자치구를 표기, 뒤 2자리는 일련번호로 구성 ** 학생 관리: 학년, 반, 번호를 학생에게 부여해서, 학생부를 관리 => XX학번, X반, X번 학생 => 만약 위 관리 기법이 없다면... 3000명 학생중 특정 학생을 찾기 위해, 전체 학생부를 모두 훑어야 함 대표적..
배열이란? 자료구조의 기본 배열(Array)에 대해서 알아보겠습니다. 배열은 동일한 자료형을 연속된 메모리상에 저장할 수 있습니다. 자료형이란? Java로 따지면 String, Char, int, boolean, double등의 값의 종류에 따른 데이터 타입을 예로 들 수 있습니다. 배열의 장점은 첫 데이터의 위치(시작 메모리 주소)에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근) 가능합니다. 배열의 단점은 데이터 추가/삭제의 어려움 처음 선언한 배열의 길이를 늘리거나 축소할 수 없습니다. 배열의 중간 인덱스 부분을 삭제한 경우 해당 메모리는 쓸모가 없는 빈 공간이 됩니다. 적합한 최대 길이를 선언시에 잘 지정해야 합니다. 인덱스란? 배열에서 특정 값의 번지수를 말합니다. Index는 제일 첫 값이..
[ Git이란 ] DVCS(Distributed Version Control System) 분산 버전 관리 시스템으로서, 형상 관리 도구이다. 이게 대체 무슨말이란 말인가. 만약 당신이 비전공자 출신으로 국비로 개발자 과정을 수강하는 중이라고 가정하자... 어떻게 어렵게 수업 진도를 따라가며 프로젝트를 해야할 시기가 왔고... 한 조에 6명이 배정되었다. 당신은 열심히 진도를 소화한 덕분에(?) 조장이 되었고, 한 프로젝트에 6명이 달라붙어서 수정과 저장을 반복할 것이다. 그런데, 철수가 프로젝트 소스를 수정중인 와중에 유미가 그 소스를 열어서 다시 수정을 한다면...?! 소스코드의 충돌로 팀원간의 관계에 불화가 생길 수 있을것이다. 이때 공동작업을 위한 해결책으로 Git을 사용하면 된다. 결론적으로 G..