코딩 스터디 16

Spring data JDBC - pagination 실습

오늘은 Spring data JDBC를 활용해 pagination을 구현해보았다. 페이지네이션(Pagination)이란? 예를 들어, 데이터 베이스에 회원 정보가 100건이 저장되어 있는데 클라이언트 쪽에서 100건의 데이터를 모두 요청하는 것이 아니라 한 페이지에 일정 개수 만큼만 나누어서 달라고 요청하는 것을 페이지네이션(Pagination)이라고 함. 즉 page 번호가 1이고, 페이지에 포함되는 데이터의 개수가 10건일 경우, 데이터베이스의 테이블에서는 1 row부터 10 row까지만 조회되어야 함. 만약 page 번호가 2이고, 페이지에 포함되는 데이터의 개수가 10건일 경우, 데이터베이스의 테이블에서는 11 row부터 20 row까지만 조회되어야 함. 그런데 이렇게 조회를 하면 보통 가장 오래..

코딩 스터디 2023.02.22

정수형 배열에서 특정한 값 찾기 문제

오늘 풀었던 데일리코딩 문제를 복습해보려고 한다. 처음 약 20분 간 수도코드 작성 및 어떻게 구현하면 좋을지를 헤맸었지만 다행히 중간에 잘못된 점을 깨닫고 정해진 시간안에 풀었던 문제다. 문제 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다. 입력 인자 1 : arr int 타입을 요소로 갖는 임의의 배열 출력 int 타입을 리턴해야 합니다. 주의사항 입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다. 배열의 요소는 음수와 0을 포함하는 정수입니다. 배열의 길이는 3 이상입니다. 입출력 예시 1 2 3 4 5 int output = largestProductOfThree(new int[]{2, 1, 3, 7}); System.out.println(ou..

코딩 스터디 2023.02.09

Schema 구현 및 INNER JOIN과 OUTER JOIN

오늘 실습한 SQL 및 Schema 과제 중 일부를 복습해보자 먼저 위의 테이블들을 intellij에서 schema.sql파일에 구현했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 CREATE TABLE `user` ( `id` int PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) not NULL, `email` varchar(255) not NULL ); CREATE TABLE `content` ( `id` int PRIMARY KEY AUTO_INCREMENT, `title` varchar(255) not NULL, `body`..

코딩 스터디 2023.02.01

요소 크기 비교 문제

오늘 스터디 시간에는 1.오늘 배운 스키마 내용 복습 2.내일 해볼 스키마 과제 예습 을 진행했다. 복습한 내용은 부트캠프에 정리해두었고, 이 글에서는 오늘 풀었던 데일리 코딩 문제를 정리할 것이다. 오류부분을 어떻게 하면 깔끔하게 해결할 수 있을지 정말 많이 고민했고, 내가 생각하기에 정말 깔끔하게 수정한 것 같아 뿌듯해서 여기에 올려보려고 한다ㅎㅎㅎ 문제 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴해야 합니다. 입력 인자 1 : arr int타입을 요소로 갖는 배열 arr[i]는 정수 출력 boolean 타입을 리턴해야 합니다. arr[i]는 arr[0]부터 arr[i-1]까지의 합보다 커야 합니다. 입출력 예시 1 2 3 4 5 boolean outpu..

코딩 스터디 2023.01.31

반복문을 곁들인 배열 요소 제거 문제

오늘 스터디 시간에는 1.오늘 배운 웹 애플리케이션 내용 복습 2.내일 해볼 API 내용 예습 3.데일리 코딩 문제 틀린 부분 질문 을 진행했다. 복습한 내용은 부트캠프에 정리해두었으니, 여기에서는 틀린 코딩 문제를 복기해보자. 문제 문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴해야 합니다. 입력 인자 1 : arr String 타입을 요소로 갖는 배열 arr[i].length()는 20 이하 출력 배열을 리턴해야 합니다. 주의 사항 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다. 가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다. 공백을 입력받을 경우, null을 반환합니다. 입출력 예시 ..

코딩 스터디 2023.01.26

momo study(23.01.25)

오늘은 알고리즘 중 순열과 조합문제를 풀어보고 복습하는 시간을 가졌다. 5개 문제 중 레퍼런스 참고 없이 푸는데 성공한 건 한 문제 뿐이었다. 유클리드 호제법을 활용해 최대공약수를 구하면 쉽게 풀어나갈 수 있는 문제였는데, 레퍼런스 만큼이나 깔끔하고 보기 쉽게 코드를 짠 것 같아서 올려본다. 조건 한 회사의 팀장은 출근길에 아몬드 빼빼로 M개와 누드 빼빼로 N개를 구매하여 아침 일찍 출근길에 나섰습니다. 팀장은 출근한 직원 수에 따라 어떻게 빼빼로를 나누어 줄지 고민하고 있습니다. 여러분이 직원 수에 따라 빼빼로를 나누어 주는 방법을 구하는 솔루션을 제공해 주세요. 입력 인자 1: M int 타입의 양의 정수 (1 ≤ M ≤ 1,000,000,000) 인자 2: N int 타입의 양의 정수 (1 ≤ N ..

코딩 스터디 2023.01.25

momo study(23.01.21)

오늘 토요일부터 설 연휴 시작이라 시간이 넉넉했다. 주말에도 아침 5시 루틴은 계속 유지하고 있었지만 오전시간을 딱히 하는 것 없이 낭비하며 보냈지만 오늘은 9시부터 개인공부를 시작했다. 오늘 개인 공부 내용은 1.객체지향 프로그래밍 기초 파트 복습 2.텍스트 스타크래프트 프로그램 실습 이었다. OOPs 기초 파트를 복습하면서 클래스, 객체, 필드, 메서드간의 관계를 명확히 이해할 수 있었고 static의 의미와 메서드 오버로딩에서 잘 모르던 부분을 다시금 이해했다. 특히 내가 어려워하던 생성자 개념을 이번 기회에 확실히 알 수 있었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public class Mai..

코딩 스터디 2023.01.21

momo study(23.01.20)

오늘 스터디 활동내용은 1.코플릿 알고리즘 문제 1,2,3번을 복습 2.4번 문제를 풀어본 후 레퍼런스 코드 및 풀이 영상 시청 3.객체지향 프로그래밍 기초 복습 까지 진행했다. 2,3번은 푸는데 성공했고, 1번은 의사코드는 적절했지만 코드로 옮기는 부분이 서툴러 결국 풀지 못했고, 4번은 굉장히 어려워서 포기했었다.(솔직히 4번은 레퍼런스 코드와 풀이 영상까지 보고 왔는데도 이해가 잘 안 간다... DP 개념을 알고리즘 문제화시킨 녀석이었는데... 상당히 어렵다) 1번 문제를 간단히 소개하고 어떤 부분에서 부족했는지 짚고 넘어가보자 조건 짐의 무게를 담은 배열 stuff와 박스의 무게 제한 limit가 매개변수로 주어질 때, 모든 짐을 옮기기 위해 필요한 박스 개수의 최소값을 return 하도록 mov..

코딩 스터디 2023.01.20

momo study(23.01.19)

오늘은 알고리즘 관련 학습 콘텐츠를 복습하고, 코드스테이츠에 있는 코플릿 자료구조 문제 10,11번을 복습하고 12번에 대한 풀이 영상을 보았다 10번 문제는 방향이 있는 간선과 방향이 없는 간선들의 목록을 받아 2차원 배열의 인접행렬을 반환하는 함수를 작성하는 문제였다. int[][] 배열을 입력받는데 (내부는 {{0, 3, 0}, {0, 2, 0} ...} 이런 상태의 2차원 배열) 각 간선은 0번째는 간선의 시작 정점, 1번째는 간선의 도착 정점, 2번째는 방향성(1==무향, 0==단방향) 이라는 정보를 담고있다. 이를 다시금 2차원 인접행렬로 반환하는데 행은 바깥, 열은 안쪽 배열이고, 세로축은 시작 정점, 가로축은 도착 정점이며, 두 정점간의 간선 유무는 0(두 정점 간에 간선 존재x)과 1(두..

코딩 스터디 2023.01.19

momo study(23.01.17)

오늘은 스택/큐 문제를 풀어보고 하나하나 복습했다. 전체적으로 문제가 어렵다고 느꼈는데 개인적으로 스택은 조금 더 할만하다고 느끼고, 큐는 학습이 부족하다고 느꼈다. 1.스택 문제(브라우저 앞으로 가기 뒤로 가기) - String[] actions와 String start를 받아 actions에 대문자 영어가 들어가면 새로운 인터넷 페이지를, 1을 입력받으면 앞으로 가기, -1을 입력 받으면 뒤로 가기를 실행하는 클래스를 생성하는 문제였다. 수도코드를 레퍼런스와 거의 유사하게 적었던 문제로, 아쉽게도 stack의 push()와 pop()부분의 이해가 살짝 부족해 푸는데 시간이 많이 걸렸었다. 2.큐 문제(박스 포장) - 큐의 기본 개념에 뒷사람이 포장을 전부 끝냈어도 앞사람이 끝내지 못하면 기다려야 한다..

코딩 스터디 2023.01.17