본문 바로가기

분류 전체보기352

[백준] 자바 10799 쇠막대기 문제 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이용하여.. 2021. 3. 22.
[백준] 자바 1316 그룹 단어 체커 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출력한다. 테스트 케이스 접근 알파벳 개수(26) 만큼 배열을 생성한 후,.. 2021. 3. 20.
[백준] 자바 11721 열 개 씩 끊어 출력하기 문제 알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다. 한 줄에 10 글자씩 끊어서 출력하는 프로그램을 작성하시오 입력 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. 출력 입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다. 테스트 케이스 접근 count 변수를 만들어 10번 반복될 때마다 줄 바꿈 하게끔 코드를 작성하였습니다. 코드 package javaBaekjoon; import java.awt.desktop.SystemEventListener; import java.io... 2021. 3. 19.
[알고리즘] 큐 queue 큐란? 큐는 자료구조 중 하나로, 알고리즘에 종종 사용됩니다. 주로 BFS에 사용되었습니다. 큐는 스택과는 다르게 스택모형에서 구멍이 뚫려있다고 생각하면 편합니다. 들어간 데이터는 그대로 제일 먼저 나옵니다. 실생활에서는 가게에서 계산대가 되겠습니다. 먼저 온 손님이 먼저 계산하듯이... 이를 FIFO(FIRST IN FIRST OUT)이라 합니다. 저는 자바로 큐를 구현해보았습니다. 큐 선언 Queue queue = new LinkedList(); Queue queue = new LinkedList(); Queue queue = new LinkedList(); 큐 값 추가 queue.add(1); queue.add(3); 큐 값 제거 queue.remove(); 큐 값 초기화 queue.clear();.. 2021. 3. 14.
[알고리즘] 스택 stack 스택이란? 자료구조 중 하나로, 알고리즘 문제에서 종종 쓸 일이 있었습니다. 어떤 보관 상자가 있는데, 이 상자에 차곡차곡 데이터를 저장할 수 있습니다. 데이터는 보관하는 순으로 저장되며, 그림에서 보다시피 가장 나중에 넣은 데이터가 가장 윗부분에 위치하게 됩니다. 따라서 데이터를 꺼낼때도 가장 윗부분부터 꺼내야 합니다. 이런 구조를 LIFO(LAST IN FIRST OUT)이라 합니다. 저는 자바로 스택을 구현해보았습니다. STACK 선언 Stack stack = new Stack(); Stack stack = new Stack(); Stack stack = new Stack(); 스택 보관함에 자료 추가하는 법 stack.push(3); //3을추가함 스택에서 값 삭제 stack.pop(); //st.. 2021. 3. 13.
[백준] 자바 1946 신입사원 문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 이러한 조건을 만족시키면서, 진영 주식회사가 이번 신규 사원 채용에서 선발할 수 있는 신입사원의 최대 인원수를 구하는 프로그램을 작성하시오. 입력 첫째 줄.. 2021. 2. 25.
반응형