SIU
article thumbnail
[ALGO#5] 백준_1012_실버2_유기농배추 : DFS [JAVA]
알고리즘/DFS 2023. 1. 17. 10:15

문제 링크 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 삼성 역량평가 IM 수준의 대표 문제입니다. 4방탐색과 DFS를 이용하는 (2차원 배열) 그래프 탐색문제입니다. dfs에서 경계값 체크, 배추가 있는지, 방문 체크 3가지 조건만 넣어준다면 쉽게 풀 수 있습니다. private static void dfs(int y, int x) { visited[y][x] =true; for(int k =0 ; k< dx.length; k++) { int nx = x + dx[k]; int ny = y + dy[k]; if(nx..

article thumbnail
[ALGO#4] 백준_2606_실버3_바이러스 : DFS [JAVA]
알고리즘/DFS 2023. 1. 17. 04:26

문제링크 : https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 전형적인 DFS 기본 문제였다. 그래프의 간선 연결을 2차원 배열에 표시하여 DFS로 표시된 곳을 탐색하고 방문 처리해줬다. 바이러스가 1번부터 점염되서 DFS에 인자를 1부터 시작해줬다. 출력할 때는 처음 감염시킨 1번 컴퓨터는 제외라고 문제에 적혀 있어서 answer-1을 해줬다. 성능 요약 메모리: 11612 KB, 시간: 76 ms 분류 그래프 이론(graphs), 그래프 탐색(gr..

article thumbnail
[ALGO#3] 백준_1303_실버1_전쟁-전투 : DFS와 BFS [JAVA]
알고리즘/DFS 2023. 1. 15. 08:32

문제링크 : https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 삼성 역량평가 IM 수준의 대표 문제입니다. 4방탐색과 BFS, DFS를 이용하는 (2차원 배열) 그래프 탐색문제이다. 백준 게시판을 살펴보니, 이 문제의 가로, 세로 입력을 잘못해서 물어보는 경우가 많았다. public class 이차원배열 { public static void main(String[] args) { int N = 4; // 가로 int M ..

article thumbnail
[ALGO#2] 백준_1018_실버4_체스판 다시 칠하기 : 완전 탐색

문제링크 : https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 단계는 크게 3단계다. 1. 입력 받기 2. 체스판 자르기 : 경계값 체크 3. 체스판 규칙 찾기 문제 핵심은 각 체스판의 지점마다 완전탐색 방법으로 최소로 색칠하는 최솟값을 찾아야한다. 입력을 받을 때 2차원 배열에 받지 않고 1차원 배열로 처리했다. 그리고 정답지를 2줄 만들어 놓고 charAt으로 입력데이터와 한 글자씩 비교했다. 이 문제에서 찾은 규칙은 입력된 체스..

article thumbnail
[#1 TroubleShooting] NaN 조건식 세울 때 isNaN()
개발 언어/JavaScript 2023. 1. 11. 11:25

JavaScript로 날짜를 입력하면 현재 날짜, 시간과 비교하여 남은 D-Day를 알려주는 미니프로젝트를 진행하던 도중 에러가 생겼다. D-DAY를 입력하는 Input 태그에 잘못된 날짜를 입력하면 NaN이 뜨는 것을 확인했다. NaN이 뜨는 이유는 Input 창에 입력한 날짜가 new Data에 맞지 않는 형태여서 그렇다. 경험 : input 창에 입력한 날짜가 NaN이면 비교 연산자로 분기하여 로직을 처리하려고 했다. const targetDate = new Date(dateFormat).setHours(0, 0, 0, 0); console.log(targetDate); // 잘못된 날짜 값입력하면 remaing과 targetDate 모두 NAN 발생 console.log(remaining === ..

article thumbnail
[#2 JavaScript] 엄격한 비교 연산자에서 변수와 객체 차이
개발 언어/JavaScript 2023. 1. 9. 04:23

자바스크립트의 느슨한 비교 연산자( Loose Equality ) 문제점 느슨한 동등 비교 연산자(==)와 엄격한 동등 비교 연산자(===)은 두 개의 피연산자에 대한 비교 연산을 수행합니다. ===의 동등 비교에서는 비교하려는 두 피연산자의 자료형이 일치하지 않더라도 형변환(Type Coercion)이 수행되지 않습니다. 엄격한 동등 비교 연산자(===)는 두 피연산자의 자료형과 값이 모두 일치할 때만 true를, 그렇지 않다면 false를 반환한합니다. 반면, 서로 다른 자료형을 가지는 두 피연산자를 느슨한 동등 비교 연산자(==)로 비교하면, JS 엔진은 양 측의 두 변수를 공통된 자료형으로 강제 형변환합니다. 이후 엄격한 비교 연산자(===)를 수행하는 방식으로 ==는 동작합니다. 따라서 느슨한 ..

[#01 JavaScript] var를 사용하지 않는 이유
개발 언어/JavaScript 2023. 1. 5. 05:17

자바스크립트의 변수 선언 키워드 : var, let, const 가 존재합니다. var는 ES6 이전에 사용됐고, 변수를 만들 떄 변수명 앞에 붙혀서 변수를 만들어줍니다. 그런데 현재 var는 현재 거의 사용하지 않습니다. var num = 12345 console.log(num) // 12345 var num = 545 console.log(num) // 545 num이 중복으로 사용이 됐는데 Error(오류)가 발생하지 않는다. 만약 큰 프로젝트에서 변수명을 똑같이 써도 Error가 발생하지 않아서 로직 상의 Error가 생겨도 찾기 힘들 것이다. 이러한 현상이 나타나는 이유는 Hoisting(호이스팅) 때문이다. 호이스팅? Hoisting은 var를 사용해서 변수 선언 했을 때 해당 변수의 선언부를..

article thumbnail
[SSAFY/싸피] 싸피 7기 수료 및 2022년 싸피 1년 회고
회고록 2022. 12. 26. 16:20

사건의 지평선 아티스트 윤하 (YOUNHA) 앨범 YOUNHA 6th Album Repackage 'END THEORY : Final Edition' 발매일 1970.01.01 여행 아티스트 볼빨간사춘기 앨범 Red Diary Page.2 발매일 1970.01.01 SSAFY 프로젝트 UCC 음원들 [1학기] 반 친구들과 3번의 싸피데이 (SSAFY 시작과 도전) 졸업을 앞두고 우연히 에브리타임에서 본 싸피 광고를 보게 되었습니다. 여기서 싸피란 Samsung SW Academy For Youth의 줄임말로 삼성에서 주관하는 SW 교육이다. 컴퓨터 전공에서 인공지능과 웹 분야의 진로를 고민하던 도중에 웹 커리큘럼이 있는 싸피에 도전하게 되었습니다. 리더십을 기르기 위해 1학기에 CA(부반장)를 맡았습니다..