본문 바로가기

전체 글

(164)
[SWEA] JAVA - 1238.Contact https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15B1cKAKwCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 생각 인접리스트를 사용하여 BFS를 구현했습니다. 마지막 depth 까지 탐색할때 가장 숫자가 큰 Node를 찾아야하기 때문에 우선 첫번째로 distance 배열에 시작 정점으로부터의 거리값을 계산해줬습니다. distance 로 방문체크도 해주기위해 -1로 초기화를 해줬습니다. 이렇게 설정해주면 탐색한 노드의 distance를 시작정점으로부터의 거리값으로 계산해주기 때문에 if(distance[no..
[백준] JAVA - 13300.방배정 https://www.acmicpc.net/problem/13300 13300번: 방 배정 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 www.acmicpc.net Java Code package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ_13300_방배정 { public static ..
[백준] JAVA - 2578.빙고 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net Java Code package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ_2578_빙고 { static int[][] board; static int[][] or..
[SWEA] JAVA - 1227. 미로2 생각 (1,1) 에서 시작하여 (13,13)까지 도달할 수 있는지를 판단하는 문제입니다. DFS를 사용하여 도착지점까지 갈 수 있는지를 찾아줬습니다. 1. 출발좌표에서 DFS 탐색을 시작합니다. 2. dy,dx 방향 벡터를 이용하여 사방탐색을 합니다. 3. 다음좌표를 방문하지 않았고 벽이 아니라면 다음 좌표를 파라미터에 넣고 다음 단계를 정하러 한단계 더 들어갑니다. 4. 더 이상 이동할 수 없으면 이전에 다녀온 방문표시를 모두 해제합니다. 5. 기저조건인 도착지점에 도착한다면 ans=1 로 업데이트 시켜줍니다. Java code package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java..
[백준] JAVA - 10157.자리배정 package com.java.algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * K 1억까지 -> 5 ≤ C, R ≤ 1,000 1억까지안돈다 * */ public class Baekjoon_10157_자리배정 { static int[][] map; static boolean[][] visited; static int[] dr = {1,0,-1,0}; // 아래 오른 위 왼 static int[] dc = {0,1,0,-1}; // 아래 오른 위 왼 public static void main(String[] args) throws IOException { Bu..
자바스크립트 - XML Parsing (공공데이터 파싱 예제) 수업시간에 배운 Ajax와 XML Parsing을 활용하여 XML 형태의 공공데이터를 파싱해봤습니다! 아래의 데이터는 공공데이터의 '중소벤처기업진흥공단_코로나19피해기업지원현황' XML 샘플 데이터입니다. 2483 대구 20년미만 2020 04 200 섬유 2484 대구 5년미만 2020 04 50 섬유 아래의 코드가 jQuery를 이용한 ajax 구현 예제입니다. (ajax 구현 방법은 주석 참고해주세요) xml 데이터를 받아와 파싱한다음 each함수를 이용하여 각각의 태그 요소에 접근합니다. 그 다음으로 find 함수를 이용하여 개별 데이터를 찾습니다. $(document).ready(function () { $.ajax({ url: 'mytestxml.jsp', //통신을 원하는 URL주소를 입력합..
병행 프로세스와 동기화 - 병행성 vs 병렬성, 상호 배제, 세마포어, 뮤텍스 프로세스 동기화의 필요성 어떤 프로세스가 먼저 공유 자원에 접근하느냐에 따라 실행 결과가 달라질 수 있기 때문에 공유 자원의 일관성을 유지하기가 어렵습니다. 이를 해결하기 위해 프로세스 동기화가 필요합니다. 1. 병행성(Concurreny) vs 병렬성(Parallelism) 1.1 병행이란? 동시에 실행되는 것처럼 보이는 것입니다. 자세하게는 메모리에 다수의 프로세스가 같이 존재한다는 의미입니다. 실제 실행 과정에서 자원을 공유하고 있을 경우 공유된 자원을 서로 언제 사용할것이지와 같은 복잡한 관리가 필요합니다. 병행 처리는 다음과 같은 문제점이 있습니다. 전역 자원의 공유가 어렵다. OS가 자원을 최적으로 할당하기 어렵다 프로그래밍 오류를 찾아내는 것이 어렵다. 1.2. 병렬이란? 실제로 동시에 작업..
[백준] JAVA - 2491.수열 생각 증가하는 수열 또는 감소하는 수열 중 가잔 긴 부분의 길이를 구하는 문제입니다. 증가하는 수열과 감소하는 수열 두가지로 나누어 풀었습니다. N이 최대 100,000 이기 때문에 반복문을 중복해서 쓰지 않고, 직전값과 현재 값을 비교하기 위해 Stack 자료구조를 사용했습니다. 증가하는 수열에서 가장 긴 부분을 찾을때 1. 스택이 비어있으면 값을 넣어줍니다. 2. 스택이 비어있지 않다면 스택의 peek 값과 현재 값을 비교하여 현재 값이 더 크다면 스택에 넣어줍니다. 3. 스택이 비어있지 않고 스택의 peek 값 > 현재값 이라면 현재까지 쌓인 스택의 길이를 확인하여 maxLength에 갱신해줍니다. 그 다음 스택을 비워준다음 현재값을 다시 넣습니다. 4. 반복문을 모두 돈다음 스택의 길이를 maxL..