[이코테][Java] 문자열 압축
·
PS/이코테
[문제링크]https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명문자열에서 같은 값이 연속해서 나타는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현한다.압축하여 표현한 문자열 중 가장 짦은 것의 길이를 구한다. 문제 풀이문자를 압축하는 패턴 길이의 범위를 1 ~ (문자열 길이 / 2) 로 해서 각 패턴별로 문자열을 압축하는 방법을 모두 구한다. 그 중에서 문자열의 길이가 가장 짧은 단위를 찾는다. 압축 패턴 길이의 범위는 1 ~ (문자열의 길이 / 2..
[백준][Java] 14502번 : 연구소
·
PS/이코테
[문제 링크]https://www.acmicpc.net/problem/14502문제 설명0 - 빈 칸, 1 - 벽, 2 - 바이러스빈 칸에 벽을 3개 세워서 바이러스가 퍼지는 것을 최소로 한다.이 때, 바이러스가 퍼질 수 없는 곳인 안전 영역 크기의 최대값을 구한다. 문제 풀이이 문제를 풀기 위해서는 크게 세 가지로 나눌 수 있다.3개의 벽을 세우는 경우의 수 구하기 → DFS벽 3개를 세운 후 바이러스가 퍼지는 과정 구하기 → BFS안전영역의 크기를 구하고 안전영역의 최대값 구하기그 전에, 입력받을 때 바이러스의 위치 정보를 따로 리스트에 저장했다.(바이러스가 퍼지는 것을 계산할 때 사용하기 위해서)//바이러스가 있는 위치를 리스트에 따로 저장if (map[i][j] == 2) {virus..
[이코테][Java] 퇴사
·
PS/이코테
[문제링크]https://www.acmicpc.net/problem/14501문제 설명상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다.오늘부터 N+1일째 되는 날 퇴사를 하기 위해서 남은 N일동안 최대한 많은 상담을 하려고 한다.하루에 하나씩 서로 다른 사람의 상담이 잡혀있고, 각각의 상담은 상담을 완료하는 데 걸리는 시간 T_i, 상담을 했을 때 받을 수 있는 금액 P_i로 이루어져 있다.하나의 상담을 하는데 필요한 기간이 1일보다 클 수 있기 때문에 모든 상담을 수행할 수 없다.예를 들어 N=7인 경우 상담 일정표가 다음과 같을 때, 1일의 상담을 수행하면 2일, 3일의 상담은 수행할 수 없다.N+1일 이후부터는 회사에 없기 때문에 6일, 7일의 상담은 수행할 수 없다.퇴사 전 할 수 있는 상담의..
[이코테][Java] 연산자 끼워넣기
·
PS/이코테
[문제링크]https://www.acmicpc.net/problem/14888문제 설명N개의 수로 이루어진 수열과 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다.연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 순서 수와 수 사이에 연산자를 하나씩 넣어서 수식을 만들 때, 식의 결과가 최대인 것과 최소인 것을 구하는 프로그램을 작성하시오.이 때, 식의 계산은 연산자 우선 순위를 무시하고 앞에서부터 진행하고 나눗셈은 정수 나눗셈으로 몫만 취한다.음수를 양수로 나눌 때에는 음수를 양수로 바뀐 뒤 몫을 취하고, 그 몫을 음수로 바꾼다. 입력조건첫째 줄에 수의 개수 N둘째 줄에 수열셋째 줄에 각 연산자의 개수출력조건식 결과의 최대값과 최솟값입출력 예시입력예시출력예시25 60 0 1 0303033 4 51 0..
[이코테][Java] 병사 배치하기
·
PS/이코테
[문제 링크]https://www.acmicpc.net/problem/18353문제 설명N명의 병사가 무작위로 나열되어 있다. 각 병사는 특정한 값의 전투력을 보유하고 있고, 병사를 배치할 때는전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 한다.배치 과정에서는 특정 위치에 있는 병사를 열외시키는 방법을 이용하고, 남아있는 병사의 수가 최대가 되도록 하고자 한다.병사에 대한 정보가 주어졌을 때, 병사의 수가 최대가 되도록 하기 위해서 열외시켜야 하는 병사의 수를 출력하는 프로그램을 작성하시오. 입력조건첫째 줄에 병사의 수 N둘째 줄에 각 병사의 전투력출력조건남아있는 수가 최대가 되도록 하기 위해서 열외시켜야 하는 병사의 수 입출력 예시입력예시출력예시715 11 4 8 5 2 42 문제..
[이코테][Java] 편집거리
·
PS/이코테
문제 설명두 개의 문자열 A와 B가 주어졌을 때, 문자열 A를 편집하여 문자열 B를 만들고자 한다.문자열 A를 편집하여 문자열 B로 만들기 위해 사용하는 연산의 수를 '편집 거리'라고 할 때, 문자열 A를 문자열 B로 만드는 최소 편집 거리를 계산하는 프로그램을 작성하세요.문자열을 편집할 때는 다음의 세 연산 중 한 번에 하나씩 선택하여 편집한다.1. 삽입(insert) : 특정한 위치에 하나의 문자를 삽입합 니다.2. 삭제(remove) : 특정한 위치에 있는 하나의 문자를 삭제합니다.3. 교체(replace) : 특정한 위치에 있는 하나의 문자를 다른 문자로 교체합니다. 입력조건문자열 A, B출력조건문자열 A, B간의 최소 편집 거리입출력 예시입력예시출력예시catcut1sundaysaturday3 ..