전체 글
자바(Java) 알고리즘 문제풀이 미로탈출 [이코테 / BFS]
문제 설명 동빈이는 N * M 크기의 직사각형 형태의 미로에 갇혀 있다. 미로에는 여러 괴물이 있어 이를 피해 탈출해야 한다. 동빈이의 위치는 (1,1) 이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 반씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로, 괴몰이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 떄는 시작과 마지막 칸을 모두 포함해 계산한다. 입력 조건 첫 번째 줄에 두 정수 N,M (4= 0 && nx < n && ny < m && map[nx][ny] == 1 && !checked[nx][ny]) { checked[nx][ny] = true; q.offer(..
자바(Java) 알고리즘 문제풀이 음료수 얼려먹기 [이코테 / DFS]
문제 설명 N * M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상,하,좌,우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 다음의 4 * 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 입력 조건 첫 번째 줄에 얼음 틀의 세로 N 과 가로 M이 주어진다. (1 = 0 && ny < m && map[nx][ny] == 0 && !checked[nx][ny]) { checked[nx][ny] = true; dfs(nx, ny); } } } }
TPC 강의를 학습하게 된 계기에 대해 ..
어쩌다가 ? 몇일 전, 인프런에서 강의를 듣던 중 우연히 박매일님의 Java TCP 강의라는 것을 보게되었다. TCP 가 뭘까 궁금해서 클릭해봤는데, Thinking - Presentation - Coding 의 약자 즉, 생각, 표현, 그리고 코딩이더라. 한창 알고리즘 공부도 하고 CS 공부도 하고 있는데 나의 자바 기초는 얼마나 탄탄한가 ? 객체지향에 대해서 얼만큼 정확하게 알고있는가 ? 또는 생각을 하면서 코딩을 하고 있나 ? 라는 생각이 문득 들었다. 음.. 누가 저렇게 물어본다면 자바 기초를 잊고 스프링 프로젝트만 하다보니 본질을 잊어버린채 스프링을 위한 코드만을 짜낼 뿐 솔직히 잘 모르겠다고 대답했을 것 같다. 그래서 초심으로 돌아가기 위해 강의를 질러버림 ㅋㅋㅎ😅 강의 내용에 JVM 메모리 ..
2022.10.03 (월요일) ~ 2022.10.09 (금요일) 주간 및 일일 학습계획
주간목표 2022.10.03 ~ 2022.10.07 컨디션 관리 주 3회 이상 운동 알고리즘 모의고사 진행 (화요일, 목요일) 하루에 알고리즘 1 ~ 2문제 풀이 / 이코테 문제 위주 구름 알고리즘 먼데이 시작 인프런 Spring Security + JWT 강의 끝내기 (메타 코딩) 자바 TPC 강의 시작 일일목표 2022.10.03 (월요일) 운영체제 학습 시작 Spring Security + JWT 수강 알고리즘 먼데이 1주차 문제풀이 완료 이코테 정렬 알고리즘 학습 및 실전 문제 풀이 두 배열의 원소교체 성적이 낮은 순서로 학생 출력하기 위에서 아래로 선택 정렬, 삽입 정렬 구현 연습 일일목표 2022.10.04 (화요일) 이코테 이분 탐색 학습 이코테 이분 탐색 실전문제 풀이 부품 찾기 떡볶이 떡..
2022.09.26 (월요일) ~ 2022.10.02 (일요일) 주간 및 일일 학습계획
주간목표 2022.09.26 ~ 2022.10.02 컨디션 관리 주 3회 이상 운동 알고리즘 모의고사 진행 (화요일, 목요일 / 목요일에서 금요일로 시간 변경으로 인해 미참여) 하루에 알고리즘 1 ~ 2문제 풀이 인프런 Spring Security + JWT 강의 끝내기 (메타 코딩) 일일목표 2022.09.26 (월요일) Issue Tracker 리팩토링 기존의 /open, /closed 주소 형식으로 서로 다른 API 로 열린 이슈, 닫힌 이슈를 받아내는 API 두 개를 하나의 API로 통합. 프론트엔드로 응답되는 변수 네이밍의 오타로 인해 파싱하지 못하는 버그 발생 -> closeMilestoneCount -> closedMilestoneCount 로 오타 수정 열린 또는 닫힌 Milestone 조..
2022.09.19 (월요일) ~ 2022.09.25 (일요일) 주간 및 일일 학습계획
주간목표 2022.09.19 ~ 2022.09.23 컨디션 관리 주 3회 이상 운동 알고리즘 모의고사 진행 (화요일, 목요일 / 목요일에서 금요일로 시간 변경으로 인해 미참여) 하루에 알고리즘 2문제 풀이 전공지식 노트 데이터베이스 섹션 끝내기 유튜브 JUnit5 + SpringBoot + JPA 강의 시작 (메타 코딩) 일일목표 2022.09.19 (월요일) 프로그래머스 고득점 Kit DFS/BFS 2문제 풀이 Level2 타겟넘버 Level2 게임 내 최단거리 구하기 JUnit5 강의 시작 Repository Layor Test 관련 일일목표 2022.09.20 (화요일) 프로그래머스 고득점 Kit DFS/BFS 2문제 풀이 Level3 네트워크 Level3 단어변환 JUnit5 강의 진행 Servi..
ERD와 정규화 과정
면접을 위한 CS 전공지식 노트를 읽고 중요하다고 생각되는 부분을 정리합니다. ERD 란 ? ERD(Entity Relationship Diagram) 는 DB 를 구축할 때 가장 기초적인 뼈대 역할을 하며, 테이블 간 관계를 정의한 것이다. 서비스 구축 전에 꼼꼼히 구축해야하는 부분 ! 시스템의 요구 사항을 기반으로 작성되며 작성된 ERD 를 기반으로 DB 를 구축하고, 재설계나 디버깅 시 설계도의 역할을 하기도 한다. ERD 는 간단하게 이정도 정의만 알아보고 중요한 정규화 과정에 대해 알아보자. 1. 정규화 과정 정규화 과정이란 테이블 간 잘못된 종속 관계로 인해 DB 이상 현상이 일어나서 이를 해결하거나 저장 공간을 효율적으로 사용하기 위해 테이블을 여러 개로 나누는 과정을 말한다. 정규화 과정은..
데이터베이스의 기본
면접을 위한 CS 전공지식 노트를 읽고 중요하다고 생각되는 부분을 정리합니다. 데이터베이스란 ? 데이터베이스는 일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터의 모음 이런 DB 를 관리하는 통합 시스템을 DBMS (DataBase Management System) 이라고 하며 여러 DBMS 마다 정의된 쿼리 문법을 통해 CRUD 를 수행할 수 있다. 1.필드 타입 필드는 항상 타입을 갖는데 여러가지 타입이 있지만 날짜 타입과 문자 타입을 정리해보자. 1-1. 날짜 타입 3 가지의 타입이 있고 가장 많은 시간대를 지원하고 가장 큰 용량을 차지하는 타입은 DATETIME 이다. DATA 시간범위 미포함 1000-01-01 ~ 9999-12-31 3Byte DATETIME 날짜 및 시간범위 모두 포함 1..
자바(Java) 알고리즘 문제풀이 피로도 [프로그래머스 / 완전탐색]
문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들..
자바(Java) 알고리즘 문제풀이 카펫 [프로그래머스 / 완전탐색]
문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 ..