1. 문제 설명 출발 좌표를 임의로 지정했을 때, 인접한 셀이 몇개인지 세는 문제이다. 좌, 우, 상, 하, 대각선 위치에 셀이 0이 아니면 인접한 셀로 정의한다. 백준 알고리즘의 Q2667 단지번호 붙이기와 비슷한 문제이다. 초록색 2번을 보면, 위쪽에 숫자가 있기 때문에 인접한 셀이다. 하지만, 좌측와 우측에는 숫자가 없기 때문에 인접하다고 할 수 없다. 2. Java구현 package recursive; package codeSquad.recursive; public class CountCellBlob { public static void main(String[] args) { int[][] image = { {1, 0, 0, 0, 0, 0, 0, 1}, {0, 1, 1, 0, 0, 1, 0, 1}..
1. 문제 설명 출발 좌표를 임의로 지정해주었을 때, 탈출이 가능한지 확인하는 문제이다. 미로에는 검은색 벽이 존재한다. (입력 시, 1은 벽을 의미하고, 0은 이동이 가능한 길을 의미) 2. Java 구현 package recursive; public class FindMaze { public static void main(String[] args) { /* 1 : 벽, 0 : 이동 가능 통로 */ int[][] maze = { {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 0, 1, 1, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 1}, {0, 1, 0, 0, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 1, 0, 1},..
1. Java 구현 package recursive; import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { /* 1. 입력 받기! */ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); char[][] arr = new char[n][n]; for (int i =..
1. Java 구현 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long a = sc.nextLong(); long b = sc.nextLong(); System.out.println(getResult(getGCD(a, b))); sc.close(); } public static long getGCD(long a, long b) { long max = Math.max(a, b); long min = Math.min(a, b); if (max % min == 0) return min; else return getGCD(max % min, mi..
예외는 개발자의 잘못된 설계 또는 사용자의 잘못된 조작으로 인해 발생이 가능하다.그렇기 때문에 사용자의 잘못된 조작에 대한 예외처리가 필요하다. (늘.. 사용자는 예상치 못한 방식으로 입력을 하고 ... 생각지도 못한 오류를 만들 때가 있다!) 그래서! 자바가 기본적으로 제공하는 예외처리가 아닌, 개발자가 직접 예외처리를 생성할 수 있다. 아래는 사용자가 8글자 이상의 사번을 입력했을 때, 예외를 발생시키는 개발코드이다. [SnoCheckException.java] - 사용자가 정의한 예외클래스도 변수와 메소드 등을 가질 수 있지만, 일반적으로 기본 생성자와 예외 발생 시, 예외 메세지를 상위 클래스에게 전달하는 역할을 수행하는 생성자를 가지는 것이 기본이다! - 그리고 일반적으로, 사용자가 정의한 예외..
1. 오류 vs 예외 비교 오류 : 하드웨어의 오동작 또는 고장으로 인해 프로그램의 실행 오류가 발생하는 것 예외 : 개발자의 설계 문제, 사용자의 잘못된 조작으로 인해 발생한 프로그램 오류. 일반예외와 실행예외로 구분 * 일반예외는 자바소스를 컴파일하는 과정에서 예외처리가 필요한지 검사하기 때문에 컴파일러 체크 예외라고도 불린다. * 실행예외는 컴파일하는 과정에서 확인하지 않기 때문에 개발자의 경험에 의해 예외처리를 삽입해야 한다. 실행예외 종류 설명 NullPointerException 객체 참조가 없는 상태 또는 null 값인 참조변수에 대해 접근했을 때 발생하는 예외 ArrayIndexOutOfBoundsException 배열에서 인덱스 범위를 초과했을 때 발생하는 예외 NumberFormatEx..
프로그래머스 1단계 모의고사 url: https://programmers.co.kr/learn/courses/30/lessons/42862?language=java 문제 설명수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까..
* equlas() : 동등성 비교 (두 객체의 내용이 같은지 확인)* hashCode() : 동일성 비교 (두 객체가 같은 객체인지 확인) HashCode - 객체를 구별하기 위해(동일성 비교) 고유한 정수값으로 출력시켜주는 메소드 보통 객체의 내용을 바탕으로 만들어진 난수처럼 보이는 객체 인식용 정수 (주소와는 다른 개념이지만 객체에 고유한 번호를 부여) - 객체 참조변수를 출력할 때, 출력되는 주소는 바로 hashCode를 16진수로 출력한 값 * 두 객체가 같으면(equals() 메소드 호출 시 true 반환) 반드시 같은 hashcode를 가져야 한다. why..? equals() 메소드는 기본적으로 "==" 연산자를 이용해서 같은 객체를 참조하는지 비교 (결국, 같은 주소값을 보유하는지 비교)..
MVC MVC란 Model View Controller의 약자로 애플리케이션을 세 가지의 역할로 구분한 디자인패턴 세 영역을 구분함으로써 결합도를 최소화한 패턴 * 디자인패턴 : 소프트웨어의 개발 방법을 공식화 한 것. 개발자들 간의 커뮤니케이션의 효율성을 높이는 기법 예) 싱글톤 패턴, 팩토리 패턴, 옵저버 패턴 등... - Model : 백그라운드에서 동작하는 로직을 처리 데이터를 담거나(dto) 데이터베이스로 데이터를 보내는 작업(dao)을 수행 * DTO (Data Transfer Object), VO (Value Object) : 데이터 전달을 위한 목적으로 생성된 객체로서, View에서 출력할 수 있는 최종 데이터를 전달 예) Car Class(Mode)에서 속도를 계산하고(로직을 통해 데이터..
프로그래머스 1단계 완주하지 못한 선수 문제 url: https://programmers.co.kr/learn/courses/30/lessons/42576 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문..