전체 글 41

[JAVA] SWEA_보급로

최근에 백준에서 동일한 문제를 푼 기억이 있어서 금방 풀었던 문제이다. 백준 4485번 녹색 옷 입은 애가 젤다지? 링크 : https://www.acmicpc.net/problem/4485 | 문제 해결방법 다익스트라 + 우선순위 큐 ★다익스트라 알고리즘과 우선순위 큐(Priority Queue)를 함께 사용하면 효율이 극대화된다. [JAVA] 해설 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; class node implements Comparable{ int r, c, cost; public node(int r, int..

[JAVA]백준 1182번: 부분수열의 합

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 비트마스킹에 대한 글을 포스팅 한 후 금방 터득한 생생한 지식으로 바로 풀어보았다✨ | 문제 해결방법 부분집합 구하는 공식 + 비트마스킹 부분집합을 구할 때 1. boolean배열을 사용할 수도 있고 2. 비트마스킹 기법을 사용할 수도 있다. 이번 문제에서는 비트마스킹 기법을 사용하였고, 이 기법은 비트단위로 정보를 처리하기 때문에 메모리를 적게 사용할 뿐만 아..

[JAVA] 비트마스킹(Bit Mask) 이해하기

목차 1. 비트마스크란? 2. 비트마스크의 예시 3. 비트 연산자 | 비트마스크(Bit Mast)란? 비트마스크는 알고리즘이 아닌 하나의 기법으로 정수를 이진수로 표현하고, 비트연산으로 다양한 문제를 해결해나가는 방법이다. | 비트마스크 예시 예를 들어 열쇠가 a , b , c , d , e , f로 6개가 있다고 가정한다. 이때, 가지고 있는 열쇠가 a , c , e 일때, 위와 같이 표현할 수 있다. 이 예시에서는 열쇠를 가지고 있는 경우/가지고 있지 않은 경우(1/0) 를 비트마스크로 표현하였는데, 이 경우 이외에도 스위치를 켜거나 끄는 경우, 해당 위치에 방문했거나 아직 방문하지 않는 경우 등 더욱 다양한 상황에서도 적용이 가능하다. 여기서 알 수 있는 점은 비트마스크는 이진수를 이용하여 두 가지..

[JAVA]백준 11404번: 플로이드

https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net | 문제 해결방법 이 문제는 제목에서 대놓고 힌트를 주고 있다. 플로이드-워셜 알고리즘으로 문제를 풀면 된다. 기본적인 플로이드-워셜 문제와 거의 동일하다. 한 가지 다른 점은 예제를 한 번 손으로 적으면서 돌려보면 알 수 있는데, 같은 간선에 비용만 다른 경우가 존재한다. 이 경우 우리가 하려고 하는 값은 최소 비용이기 때문에 작은 비용을 선택해주면 된다. 그리고 내가 두 번이나 틀렸던 이유로 ..

[JAVA]SWEA .6026 성수의 비밀번호 공격

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWajgCUaaAkDFAWM&categoryId=AWajgCUaaAkDFAWM&categoryType=CODE&problemTitle=6026&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1&&&&&&&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제에서 사용할 세 가지 공식 1. 포함배제의 원리 2. 페르마의 소정리 3. 빠른 거듭제곱 | 포함배제의 원리 ∑(-1)^..

[SSAFY_6기] SSAFY 2개월차 소감

나에게 SSAFY란 '확신'이다. | ✨SSAFY란? SSAFY의 커리큘럼은 입과하기 전엔 정확하게 알 수 없지만, 인터넷에서 SSAFY에 대한 정보들을 찾아보면 전공, 비전공과 상관 없이 개발자가 되고 싶은 사람에게는 정말 좋은 배움의 기회를 준다는 것을 알 수 있다. 운이 좋게도 본인은 현재 SSAFY 6기로 입과하여 2개월째 SSAFY과정에 참여하고 있는 교육생이다. | SSAFY의 장점🎁 SSAFY에서 가장 많이 도움되고 있다고 생각되는 부분을 크게 3가지로 정의해보면 1. 커리큘럼(및 취업지원) 2. SSAFY에서 만난 훌륭한 교수님들과 든든한 동기들 3. 9:00-18:00 취업 준비 기간을 부지런하게 만들어주는 수업시간 | 커리큘럼 SSAFY에서 제공하는 커리큘럼을 따라가는게 생각보다 쉽지 ..

SSAFY 2021.09.27

CRP(★Critical Rendering Path★)와 성능개선

| CRP(Critical Rendering Path) 서버에 HTML페이지를 요청하는 순간부터 브라우저가 내용을 화면에 표기하기까지의 단계를 Critical Rendering Path라고 부른다. | 렌더링 순서 크게 Construction 과정과 Operation 과정으로 나눌 수 있고, 세부적으로 DOM -> CSSOM -> Render Tree -> Layout -> Paint 의 과정을 거친다. 조금 더 세부적으로 살펴보면 Construction 과정 | request/response 브라우저가 서버에게 HTML 파일 요청한다. | loading, scripting HTML 파일 load 후 DOM요소로 변환(scripting)한다. | rendering render tree 생성한다. Oper..

[javascript] CSSOM( DOM + CSS )

https://developer.mozilla.org/ko/docs/Web/API/CSS_Object_Model CSS 객체 모델 (CSSOM) - Web API | MDN CSS Object Model은 JavaScript에서 CSS를 조작할 수 있는 API 집합입니다. HTML 대신 CSS가 대상인 DOM이라고 생각할 수 있으며, 사용자가 CSS 스타일을 동적으로 읽고 수정할 수 있는 방법입니다. developer.mozilla.org | CSSOM이란? CSSOM은 DOM(Document Object Model) + CSS 로 1단계. 브라우저가 페이지를 로드하고 DOM Tree를 만든다. 2단계. DOM 트리에 CSS 파일을 읽어 반영한 CSSOM Tree를 만든다. 3단계. DOM 트리와 CSS..

[JAVA]백준 2606번: 바이러스

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net | 문제 해결방법 관련 알고리즘 : bfs + 인접행렬 1. 입력받은 네트워크 쌍을 이용해 인접행렬을 초기화 한다. 2. (1,1) 부터 시작하여 네트워크로 연결되어 있는 컴퓨터를 모두 탐색한다.( bfs + visited[] ) 3. visited[] (방문한 컴퓨터는 true가 됨) 배열에서 true의 개수를 반환(1번 컴퓨터는 counting하지 않음) [JAVA] 해설 코드 import java..

[JAVA]백준 2667번: 단지번호붙이기

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net | 문제 해결방법 개인적으로 굉장히 쉬운 문제였다. 단지별로 단지 번호, count만 잘 처리해주면 인접리스트 + bfs로 쉽게 해결 관련 알고리즘 : 인접리스트 + bfs [JAVA] 해설 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arra..