Stack/Queue 프로그래머스 '쇠막대기' 문제풀이

Problem

여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다.

  • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다.
  • 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다.
  • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다.
  • 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않습니다.

레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여 왼쪽부터 순서대로 표현할 수 있습니다.

(a) 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 ‘()’으로 표현합니다. 또한 모든 ‘()’는 반드시 레이저를 표현합니다. (b) 쇠막대기의 왼쪽 끝은 여는 괄호 ‘(‘로, 오른쪽 끝은 닫힌 괄호 ‘)’로 표현됩니다.

쇠막대기는 레이저에 의해 몇 개의 조각으로 잘리는데, 위 예에서 가장 위에 있는 두 개의 쇠막대기는 각각 3개와 2개의 조각으로 잘리고, 이와 같은 방식으로 주어진 쇠막대기들은 총 17개의 조각으로 잘립니다.

쇠막대기와 레이저의 배치를 표현한 문자열 arrangement가 매개변수로 주어질 때, 잘린 쇠막대기 조각의 총 개수를 return 하도록 solution 함수를 작성해주세요.

  • arrangement의 길이는 최대 100,000입니다.
  • arrangement의 여는 괄호와 닫는 괄호는 항상 쌍을 이룹니다.

Solution

import java.util.Stack;
public class IronStick {
	Stack st = new Stack();
	
	public int solution(String arrangement) {
		int answer = 0;
		int idx = 0;
		char now = '*', next = '*';
		
		while(idx < arrangement.length()-1) {
			now = arrangement.charAt(idx);
			next = arrangement.charAt(++idx);
			
			if(now == '(') {
				st.add('(');
				if(next == ')' && !st.empty()) {
					st.pop();
					idx++;
					answer += st.size();
				}					
			}else{
				st.pop();
				answer++;
			}			
		}
		st.pop();
		return answer + 1;
	}
}

2021

BruteForceSearch 프로그래머스 알고리즘 자바 ‘문자열 압축’ 문제풀이

2 minute read

Problem 데이터 처리 전문가가 되고 싶은 “어피치”는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표...

ETC. 프로그래머스 자바 ‘배달’ 문제풀이

1 minute read

Problem N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 ...

Back to Top ↑

2019

less than 1 minute read

1. Responsive Web 반응형 웹 적응형 웹 : 서버 사이드에서 클라이언트의 정보를 미리 받아 해당 조건별로 정해진 화면을 보여준다. 즉, 클라이언트가 모바일인지 웹인지를 파악해서 리소스를 선택하고 그에 맞는 화면을 나타내주는 형태이다. (예. 모바일에서 www.na...

For job interview, about DB 면접 공부하기-데이터베이스 3

1 minute read

1. MyBatis 마이바티스 Definition 정의 : XML 언어 또는 어노테이션 annotations 을 사용하여 개발자가 지정한 SQL, 저장 프로시저 그리고 몇 가지 고급 매핑을 지원하는 자바 지속성 프레임워크 persistence framework이다. Fea...

less than 1 minute read

1. What is Git and Github? Git : 분산 버전 관리 시스템

For job interview, about Web 면접 공부하기-웹 4

3 minute read

1. REST API Definition 정의 : REpresentational State Transfer의 약자로, 웹 어플리케이션이 제공하는 각각의 데이터를 리소스로 간주하고 각각의 리소스에 고유한 URI(Uniform Resource Identifier)를 할당함으로써 ...

For job interview, about DB 면접 공부하기-데이터베이스 2

3 minute read

1. Index 인덱스 Definition 정의 : RDBMS에서 검색 속도를 높이기 위해 사용하는 자료 구조 (B-Tree 구조로 색인) Principle 원리 : 초기 테이블 생성시 만들어진 MYI 파일에 해당 컬럼을 색인하고, 검색 시 Tree로 정리해둔 MYI 파일...

For job interview, about Web 면접 공부하기-웹 3

3 minute read

1. 대칭키와 비대칭키 차이 1. Symmetric-key cryptography 대칭키 암호화 Definition 정의 : 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘 Features 특징 공개 키(비대칭키) 암호와 비교하여 계산 속도가 빠르다. ...

For job interview, about Data Structure 면접 공부하기-자료구조

4 minute read

1. Linked List vs Array 1. Array 배열 같은 자료형을 갖는 데이터의 집합으로 연속적인 데이터를 저장한다. 생성할 때 데이터를 저장하는 데 필요한 모든 메모리를 한 번에 확보해 사용할 수 있게 해주므로 프로그램이 실행되는 중간에 배열의 크기를 바꿀 ...

For job interview, about JAVA 면접 공부하기-자바 2

1 minute read

1. 인터페이스와 추상클래스의 차이 1. Interface 인터페이스 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으...

[Vue.js]

less than 1 minute read

1. What is Vue.js? 뷰 란? 사용자 인터페이스를 만들기 위한 진보적인 프레임워크이다. 렌더링 성능은 React와 비교해서 약 2배 정도 빠르며, 높은 프레임 속도의 데이터 시각화 및 애니메이션을 프로토 타이핑할 때 Vue는 초당 10 프레임을 처리하지만 React는 ...

For job interview, about Javascript 면접 공부하기-자바스크립트 2

2 minute read

1. 이벤트 흐름 1. Event bubbling 이벤트 버블링 이벤트 발생 시 해당 요소를 포함하고 있는 부모 요소를 통하여 최상위 객체(document)를 만날 때까지 거슬러 올라가면서 이벤트가 발생하는 과정이다. IE9, Chrome, Safari는 ‘window’ ...

[CSS] Learn CSS by myself from W3school 1

1 minute read

1. What is CSS? Cascading Style Sheets를 위한 표준이다. 어떻게 HTML 요소들이 스크린에 보여지는지 설명한다. 한번에 다양한 웹 페이지들의 레이아웃을 관리할 수 있기 때문에 많은 작업을 줄여준다. 외부 스타일시트를 저장한다.

For job interview, about Web 면접 공부하기-웹 2

2 minute read

1. 라이브러리와 프레임워크의 차이 1. Library 라이브러리 재사용이 필요한 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 class나 function으로 만들어진 것이다. e.g. jQuery, React.js

Greedy 백준 알고리즘 자바 2875 ‘대회 or 인턴’ 문제풀이

1 minute read

Problem 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 그런데 올해에는 대회에 ...

DynamicProgramming 프로그래머스 알고리즘 자바 ‘등굣길’ 문제풀이

1 minute read

Problem 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의...

BinarySearch 프로그래머스 알고리즘 자바 ‘징검다리’ 문제풀이

1 minute read

Problem 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 ...

Backtracking 백준 알고리즘 자바 1987 ‘알파벳’ 문제풀이

1 minute read

Problem 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지...

Backtracking 백준 알고리즘 자바 6603 ‘로또’ 문제풀이

1 minute read

Problem 독일 로또는 {1, 2, …, 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8...

BinarySearch 백준 알고리즘 자바 2110 ‘공유기 설치’ 문제풀이

1 minute read

Problem 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, …, xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에,...

Backtracking 백준 알고리즘 자바 1759 ‘암호 만들기’ 문제풀이

2 minute read

Problem 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 ...

Math 백준 알고리즘 자바 1476 ‘날짜 계산’ 문제풀이

1 minute read

Problem 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때...

BruteForceSearch 백준 알고리즘 자바 1107 ‘리모컨’ 문제풀이

1 minute read

Problem 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널...

BinarySearch 백준 알고리즘 자바 2805 ‘나무 자르기’ 문제풀이

2 minute read

Problem 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다. 목재절단기는 다음과...

Tree 백준 알고리즘 자바 1991 ‘트리 순회’ 문제풀이

1 minute read

Problem 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 ...

DFS 백준 알고리즘 자바 9466 ‘텀 프로젝트’

2 minute read

Problem 이번 가을학기에 ‘문제 해결’ 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶...

DFS 백준 알고리즘 자바 4963 ‘섬의 개수’ 문제풀이

1 minute read

Problem 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어...

DFS/BFS 백준 알고리즘 자바 1260 ‘DFS와 BFS’ 문제풀이

1 minute read

Problem 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.

ETC. 백준 알고리즘 자바 4673 ‘셀프 넘버’ 문제풀이

1 minute read

Problem 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n,...

ETC. 백준 알고리즘 자바 2908 ‘상수’ 문제풀이

less than 1 minute read

Problem 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를...

ETC. 백준 알고리즘 자바 1316 ‘그룹 단어 체커’ 문제풀이

less than 1 minute read

Problem 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 ...

ETC. 백준 알고리즘 자바 2675 ‘문자열 반복’ 문제풀이

1 minute read

Problem 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code “alphanumeric” 문자만 들어있다...

ETC. 백준 알고리즘 자바 1110 ‘더하기 사이클’ 문제풀이

1 minute read

Problem 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오...

IO 백준 알고리즘 15552 자바 ‘빠른 A+B’ 문제풀이

1 minute read

Problem 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(...

For job interview, about JAVA 면접 공부하기-자바

3 minute read

1. Variable 변수 primitive type 기본형 : boolean, char, byte, short, int, long, float, double reference type 참조형 : heap에 할당된다. 배열도 참조형 변수이다. 8개의 기본형을 제외한 나머지...

LinkedList 백준 알고리즘 자바 1406 ‘에디터’ 문제풀이

1 minute read

Problem 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 ‘커서’라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른...

Stack/Queue 프로그래머스 알고리즘 자바 ‘프린터’ 문제풀이

1 minute read

Problem 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행...

DFS 백준 알고리즘 자바 10451 ‘순열 사이클’ 문제풀이

1 minute read

Problem 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 (1 2 3 4 5 6 7 8) (3 2 7 8 1 4 5 6) 와 같다. 또는...

Greedy 백준 알고리즘 자바 4307 ‘개미’ 문제풀이

1 minute read

Problem 개미 여러 마리가 길이가 lcm인 막대 위에 있다. 각 개미의 이동 속도는 모두 일정하며, 1cm/s이다. 개미가 막대의 마지막까지 걸어간다면, 개미는 그 즉시 떨어지게 된다. 또, 두 개미가 만나게 된다면, 방향을 반대로 바꾸어 걸어가게 된다.

Greedy 백준 알고리즘 자바 2217 ‘로프’ 문제풀이

1 minute read

Problem N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을...

Greedy 백준 알고리즘 자바 1931 ‘회의실 배정’ 문제풀이

1 minute read

Problem 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의들에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면...

Greedy 백준 알고리즘 자바 11399 ‘ATM’ 문제풀이

1 minute read

Problem 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다.

Greedy 백준 알고리즘 자바 11047 ‘동전0’ 문제풀이

1 minute read

Problem 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

DFS 프로그래머스 자바 ‘여행경로’ 문제풀이

1 minute read

Problem 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요.

DFS 프로그래머스 알고리즘 자바 ‘단어 변환’ 문제풀이

1 minute read

Problem 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. words에 있는 단어로만...

DFS 프로그래머스 알고리즘 자바 ‘네트워크’ 문제풀이

1 minute read

Problem 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다...

DFS/BFS 백준 알고리즘 자바 2667 ‘단지번호붙이기’

1 minute read

Problem 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다...

DFS 프로그래머스 알고리즘 ‘타겟 넘버’ 문제풀이

less than 1 minute read

Problem n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 ...

BFS 백준 알고리즘 자바 7576 ‘토마토’ 문제풀이

2 minute read

Problem 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을...

BFS 백준 알고리즘 자바 7569 ‘토마토2’ 문제풀이

2 minute read

Problem 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도...

BFS 백준 알고리즘 자바 2178 ‘미로탐색’ 문제풀이

1 minute read

Problem N×M크기의 배열로 표현되는 미로가 있다. 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시...

Dynamic Programming 백준 알고리즘 자바 9465 ‘스티커’ 문제풀이

1 minute read

Problem 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어...

Dynamic Programming 백준 알고리즘 자바 2011 ‘암호코드’ 문제풀이

1 minute read

Problem 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이라고 하고, B는 2로, 그리고 Z는 26으로 하는거야. 선영: 그럼 안...

Dynamic Programming 백준 알고리즘 자바 1912 ‘연속합’ 문제풀이

less than 1 minute read

Problem n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는...

Dynamic Programming 백준 알고리즘 자바 11052 ‘카드 구매하기’ 문제풀이

1 minute read

Problem 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, … 카드 N개가 포함된 카드팩과 같이 총 N가지가 존재한다. 민규는 카드의 개수가 적은 팩이더라도 가격이 비싸면 높은 등급의 카드가 많이 들어있을 것이...

Dynamic Programming 백준 알고리즘 자바 2293 ‘동전1’ 문제풀이

1 minute read

Problem n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우...

Dynamic Programming 백준 알고리즘 자바 2156 ‘포도주 시식’ 문제풀이

1 minute read

Problem 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야...

Topological Sort 백준 알고리즘 자바 1005 ‘ACM Craft’ 문제풀이

2 minute read

Problem 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 ...

Dynamic Programming 백준 알고리즘 자바 1463 ‘1로 만들기’ 문제풀이

less than 1 minute read

Problem 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연...

DynamicProgramming 백준 알고리즘 JAVA 1149 ‘RGB거리’ 문제풀이

1 minute read

Problem RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파...

BinarySearch 백준 알고리즘 1300 ‘K번째 수’ 문제풀이

1 minute read

Problem 세준이는 NN크기의 배열을 만들었다. (배열의 방 번호는 1부터 시작한다.) 그 배열을 A라고 했을 때, 배열에 들어가는 수는 A[i][j] = ij 이다. 세준이는 이 수를 일차원 배열 B에 넣으려고 한다. 그렇게 되면, B의 크기는 N*N이 될 것이다. 그러고 난...

BinarySearch 백준 알고리즘 1654 ‘랜선 자르기’ 문제풀이

1 minute read

Problem 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선...

BinarySearch 백준 알고리즘 10815 ‘숫자 카드’ 문제풀이

1 minute read

Problem 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.

Greedy 프로그래머스 ‘저울’ 알고리즘 문제풀이

less than 1 minute read

Problem 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 합니다. 이 저울의 양팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같습니다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있습니다. ...

Greedy 프로그래머스 ‘단속카메라’ 알고리즘 문제풀이

less than 1 minute read

Problem 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치...

Greedy 프로그래머스 ‘섬 연결하기’ 알고리즘 문제풀이

1 minute read

Problem n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. ...

Greedy 프로그래머스 ‘체육복’ 알고리즘 문제풀이

1 minute read

Problem 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, ...

BruteForceSearch 프로그래머스 ‘소수 찾기’ 알고리즘 문제풀이

1 minute read

Problem 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solu...

Hash 프로그래머스 ‘전화번호 목록’ 알고리즘 문제풀이

less than 1 minute read

Problem 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4...

Heap 프로그래머스 ‘라면공장’ 알고리즘 문제풀이

1 minute read

Problem 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 ...

Heap 프로그래머스 ‘더 맵게’ 알고리즘 문제풀이

less than 1 minute read

Problem 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.

Sort 프로그래머스 자바 ‘H-Index’ 문제풀이

less than 1 minute read

Problem H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.

Stack/Queue 프로그래머스 자바 ‘탑’ 문제풀이

less than 1 minute read

Problem 수평 직선에 높이가 서로 다른 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다.

Stack/Queue 프로그래머스 자바 ‘기능개발’ 문제풀이

less than 1 minute read

Problem 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 ...

Stack/Queue 프로그래머스 자바 ‘다리를 지나는 트럭’ 문제풀이

less than 1 minute read

Problem 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트...

Stack/Queue 프로그래머스 ‘쇠막대기’ 문제풀이

1 minute read

Problem 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다.

Back to Top ↑

2017

How to solve “cannot find out IP address” using ifconfig

less than 1 minute read

ifconfig 입력 시 ip 안 보일 때 설정하기 ifconfig로 네트워크를 확인해보니, 이더넷만 잡혀있었다. putty 등으로 원격에서 접속할 때 ip 주소가 반드시 필요하기 때문에 해결해 보았다.

Back to Top ↑