[BOJ/백준] 4963. 섬의 개수 (JAVA)
·
💪 Algorithm
링크https://www.acmicpc.net/problem/4963 문제 요약h*w 사각형 지도에 섬 또는 바다가 표시되어 있을 때 섬의 개수를 반환하기이때 가로, 세로, 대각선으로 연결되어 있는 섬은 같은 섬이다. 제한입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다.w와 h는 50보다 작거나 같은 양의 정수이다.둘째 줄부터 h개 줄에는 지도가 주어진다.1은 땅, 0은 바다이다.입력의 마지막 줄에는 0이 두 개 주어진다.w와 h는 50보다 작거나 같은 양의 정수이다. 풀이가로, 세로, 대각선으로 연결되어 있지 않은 1의 개수를 세는 문제입니다. 즉, 영역의 개수를 구하는 문제이므로 DFS 또는 BFS로 풀 수 있습니다.저는 DFS..
[프로그래머스] 크레인 인형뽑기 게임 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약N*N `board`에 여러 모양의 인형(1*1)이 쌓여있는 상태이고, 크레인은 각 줄의 가장 위에 있는 인형을 집어 올린다.그리고 집어 올린 인형을 한 줄 바구니에 쌓아 올릴 때, 같은 모양의 인형이 연속해서 쌓이면 이 두 인형은 없어진다. 2차원 배열 `board`와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 `moves`가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 사라진 인형의 개수를 반환하기제한`board..
[프로그래머스] 주식 가격 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약초 단위 주식가격 배열 prices에 대해 가격이 떨어지지 않은 기간은 몇 초인지 반환하기예: [1,2,3,2,3] → [4,3,1,1,0] 제한prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다. 풀이prices의 길이가 최대 10^6이므로 시간 복잡도는 `O(N)` 이어야 합니다.따라서 i초 시점 주식 가격이 언제 떨어지는지 그 뒤를 매번 확인한다면, `O(N..
[프로그래머스] 짝지어 제거하기 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약주어진 문자열 s에 대해 짝지어 제거하기가 가능하면 1, 아니면 0 반환하기짝지어 제거하기: 문자열에서 같은 알파벳이 2개 붙어있는 짝을 제거한 뒤, 앞뒤로 문자열을 이어 붙인다. 이를 반복해서 문자열이 모두 제거된다면 성공예시: `baabaa` → `bbaa` → `aa` → 성공 제한문자열의 길이 : 1,000,000 이하의 자연수문자열은 모두 소문자로 이루어져 있습니다. 풀이문자열 길이가 10^6으로 ..
[프로그래머스] 괄호 회전하기 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/76502?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약문자열 s가 올바른 괄호 문자열인지 반환하는 문제 올바른 괄호 문자열의 정의는 아래와 같습니다.(), [], {}는 모두 올바른 괄호 문자열입니다.만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다.만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다.' 제한s의 길이는 1 이상 1,000 이하입니다. 풀이올바른 괄호 문자열 정의에 따라 소괄호를..
[프로그래머스] 방문 길이 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약명령어 리스트 dirs가 주어졌을 때, 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하기 이동 명령어 4가지 U, D, R, L(위, 아래, 오, 왼)가 있다.즉, 이전에 왔던 길은 카운트하지 않아도 된다. 제한dirs는 string형으로 주어지며, 'U', 'D', 'R', 'L' 이외에 문자는 주어지지 않습니다.dirs의 길이는 500 이하의 자연수입니다. 풀이dirs 길이가 500 이하이고, 좌표평면의 크기는 1..
[프로그래머스] 실패율 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어 수/스테이지에 도달한 플레이어 수전체 스테이지 개수, 각 사용자가 현재 멈춰있는 스테이지 번호 stages가 주어질 때 실패율이 높은 스테이지부터 내림차순으로 반환하기 제한스테이지의 개수 N은 1 이상 500 이하의 자연수이다.stages의 길이는 1 이상 200,000 이하이다.stages에는 1 이상 N + 1 이하의 자연수가 담겨있다.각 자연수는 사용자가 현재 도전..
[프로그래머스] 행렬의 곱셈 (JAVA)
·
💪 Algorithm
링크https://school.programmers.co.kr/learn/courses/30/lessons/12949go 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약2차원 행렬 arr1과 arr2를 곱한 결과 반환하기 제한행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다. 풀이행렬의 곱셈을 계산하는 방법을 살펴보면 다음과 같습니다.arr1의 첫 번째 행과 arr2의 첫 번째 열의 원소들을 각각 곱한 후, 그 합을 구합니다. → 결과 행렬의 1행 1열 값이 됩니다.ar..