본문 바로가기
반응형

전체 글101

[ 알고리즘 ] 코딩 - Programmers - 등굣길.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 프로그래머스 - Level 3 - (자바) 등굣길 - 동적 계획법(DP)의 기초 1,1에서 m, n까지 가는 모든 경로 중 물이 있는 곳은 피해 가는 경로 제한 사항 로직 Step 01. 가장자리는 0으로 넣기위해 배열 크기 +1 해서 생성, 시작 위치를 1로 주어줌. Step 02. 만들어진 map에 물 웅덩이 위치 -1 표시 ( puddles[0][0.. 2021. 4. 1.
[ 알고리즘 ] 코딩 - Programmers - 정수삼각형.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 개요 프로그래머스 - Level3 - (자바) 정수삼각형 - 동적 계획법(DP)의 기본 로직 Step 01. 가장 아래의 배열부터 시작한다 Step 02. 2개의 요소를 비교해가며 더 큰 숫자만을 바로 위 배열의 요소에 더해준다 Step 03. 가장 꼭대기에 닿을때까지 반복한다 Step 04. 꼭대기가 정답 위 그림의 과정을 반복한다! 코드 class Solution { public int solution(int[][] triangle) {.. 2021. 4. 1.
[ Computer Science ] Sort - 안정 정렬과 불안정 정렬 컴퓨터 사이언스(CS) - 정렬 / 안정 정렬(Stable)과 불안정 정렬(Not Stable) 정렬이란? 정렬 알고리즘 ( sorting algorithm )이란 원소들을 번호 순 혹은 사전 순과 같이 일정한 순서대로 열거하는 알고리즘을 말한다. 정렬의 안정성 정렬의 안정성이란 정렬을 수행하고 난 후 요소들이 입력 때와 동일한 순서로 있는지 없는지의 차이를 기준으로 달라진다. 안정성은 몇 가지 이유로 중요하다. 예를 들면 데이터가 학생 이름으로 우선 정렬되면 데이터는 이제 어느 학급에 위치하는 지에 따라서 다시 정렬된다. 학생들이 같은 학급에 있다고 가정한다면, 이름의 순서는 특정 순서가 아니게 뒤섞이게 되는데 이는 성가신 문제이다. 정렬을 수행하고 난 다음에도 원래 입력과 동일한 순서로 되어있다면 학.. 2021. 3. 31.
[ 알고리즘 ] 코딩 - Programmers - 여행경로.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 개요 프로그래머스 - Level 3 - (자바) 여행경로 - DFS / 백트래킹 / 가지치기 로직 Step 01. DFS에서 나온 결과 값이 최선인 경우를 찾기 위해 도착지를 기준으로 정렬 Step 02. 모든 "ICN" 출발지를 기준으로 탐색 시작 Step 03. StringBuilder를 이용해서 문자열을 다음 DFS로 넘겨가면.. 2021. 3. 31.
[ Computer Science ] Network - OSI 7계층 컴퓨터 사이언스(CS) - 네트워크 부분 - OSI 7계층의 전반적인 내용 OSI 7계층 OSI 모형은 국제표준화기구(ISO)에서 개발한 모델. 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것 OSI 7 계층으로 나눈 목적 간단하게 말하자면 프로토콜을 기능별로 나눈 것. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다. 통신이 일어나는 과정을 단계별로 알 수 있으며, 특정한 곳에 이상이 생기면 그 단계만 수정 하면 되는 이점도 있다. 계층 기능 계층 1: 물리 계층 (Physical Layer) 네트워크 어댑터, 리피터, 케이블, 네트워크 허브, 모뎀 등.. 단지 데이터를 전기적인 신호.. 2021. 3. 31.
[ 알고리즘 ] 코딩 - 백준 13460 - 구슬탈출2.java 문제 링크 www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net * BOJ 13460 - (자바) 구슬 탈출 2 - BFS(너비 우선 탐색), 시뮬레이션 * 세로 크기는 N, 가로 크기는 M * 가장 바깥 행과 열은 모두 막혀 있고, 보드에는 구멍이 하나 * 파란 구슬이 구멍에 들어가면 안 된다. * 중력을 이용해서 이리저리 굴려야 한다. * 왼쪽으로 기울이기, 오른쪽으로 기울이기, 위쪽으로 기울이기,.. 2021. 3. 31.
[ 알고리즘 ] 코딩 - Programmers - 단어변환.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr * 프로그래머스 - Level 2 - (자바)단어변환 - DFS 기본 * DFS의 기본을 이용하는 문제! * for문 3개를 이용! 완전 탐색으로 풀었다. * 1. 현재 단어의 모든 위치를 순차적으로 확인하며 변환한다. 2. 변환함과 동시에 words 배열에 있는지 확인 3. 있다면 다음 DFS 4. 없다면 위.. 2021. 3. 16.
[ 알고리즘 ] 코딩 - Programmers - 땅따먹기.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr * 프로그래머스 - Level 2 - (자바) 땅따먹기 - DP * 한 행 씩 내려가며 숫자 하나를 선택 * 같은 열을 연속으로 선택 할 수 없음 * 행의 개수가 10만개다! DFS로 푸는 순간 시간 초과가 걸릴 것이다! 하고 압박을 준다. * 큰 문제를 작은 문제로 나누어 데이터를 재사용하는 방법인 DP를 이용해서 풀고자 했다. *.. 2021. 2. 22.
[ 알고리즘 ] 코딩 - Programmers - 다음 큰 숫자.java 문제 링크 programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr * 프로그래머스 - Level 2 - (자바) 다음 큰 숫자 - Integer.toBinaryString(n) 함수 이용하기 / 규칙 찾기 * Integer에 이진 변환이 되는 함수가 있는지 몰라서 꾸역꾸역 스택으로 만들었었다 * 그리고 혹시나 하는 마음에 찾아보니.. Integer.toBinaryString(n);라는 .. 2021. 1. 28.
반응형