반응형

구현 2

BOJ 18111 마인크래프트

이 문제는 땅의 높이를 0~256중 하나로 하여 땅을 고르게 만들때 걸리는 시간과 땅의 높이를 출력하는 프로그램이다. 처음 생각한 방법은 같은 높이의 블록 갯수를 파악하여 {높이,갯수} 형태로 배열에 저장하고 이들중 하나의 높이로 통일 시킬 때 걸리는 시간과 높이를 구하여고 하였다. 하지만 위와 같은 방법의 문제점은 문제에서 주어진 높이로만 땅을 고르게 할때 다음과 같은 반례가 나올 수 있다. 1 3 1 1 4 1 다음과 같은 경우 정답은 6 2 가 되지만 처음 생각한 방법으로 구현 하였을 경우 배열에 {1,2},{4,1}이 들어가고 결과는 6 1 이 나오게 된다. 이는 문제에서 시간이 같다면 높이가 높은것을 구하라고 하는것을 빼먹은 것이다. 이를 해결하기 위해 모든 높이에 대해 걸리는 시간을 모두 구하..

알고리즘/boj 2023.02.13

15230 알파벳 공부

알파벳 소문자(a-z)로 구성된 문자열 N개가 주어졌을때 문자열을 알파벳을 순서대로 보면서 앞에서부터 몇 개의 알파벳이 순서에 맞게 적혀 있는지 구하는 프로그램이다. 각 케이스마다 문자열을 input 이라고 놓았을경우 input[0]은 문자열의 첫번째 문자가 되고 input[1]은 문자열의 두번째 문자가 된다. i=0 부터 current = input[i], next = input[i+1] 에서 next - current 가 항상 1이 나오면 알파벳 순서도 나열되있다고 알 수 있다. 한편 문제에서 "순서는 a부터 순서대로 일치하는 알파벳 개수를 계산하여야 한다". 라는 조건이 있기 때문에 input[0]이 a가 아니면 0을 반환한다. #include using namespace std; int main(..

반응형