본문 바로가기
알고리즘 풀이/소프티어

[level 2] 지도 자동 구축 (JAVA)

by cornsilk-tea 2023. 5. 10.

문제 요약

현대자동차그룹이 레벨 3 자율주행차 상용화 목표에 발맞춰 총력을 다하고 있는 가운데, 국내 최고 수준의 지도 구축 기술력을 보유한 현대엠엔소프트는 자율주행에 필요한 정밀지도를 제작해 배포하고, 기술 고도화를 위한 연구에 매진하고 있다.
최근에는 도로 데이터를 기반으로 자동으로 정밀지도를 구축하는 ‘지도 자동 구축(Map Auto Creation, 이하 MAC)’ 기술을 개발해 지도 제작 시간을 단축하고 정밀도를 향상하는 데 성공했다.
자율주행차용 정밀 지도에 관한 궁금증으로 인터넷 검색을 해보니, Diamond-Square-Algorithm이라는 것을 찾게 되었다. 이 알고리즘은 정사각형을 이루는 점 4개를 고르고 그 후에는 다음과 같은 과정을 거쳐 모양이 만들어진다.
정사각형의 각 변의 중앙에 점을 하나 추가한다.
정사각형의 중심에 점을 하나 추가한다.


문제 분석

점화식을 사용해 해결하자.


코드

import java.util.*;
import java.io.*;


public class Main
{
    public static void main(String args[]) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[] table = new int[N+1];
        int result = 0;
        if(N == 1){
            result = (int)Math.pow(3,2);
        }        
        else if(N == 2){
            result = (int)Math.pow(5,2);
        }
        else{
            table[0] = 2;
            table[1] = 3;
            // table[2] = 5;
            for(int i = 2; i <= N; i++){
                table[i] = table[i-1] *2-1;
            }
            result = table[N] * table[N];
        }
        // System.out.println(Arrays.toString(table));
        System.out.println(result);        
    }
}

정리

새로 배운 내용

없음

개선할 점

점화식 만드는 과정이 생각보다 오래걸렸다. 

더 찾아볼만한 사항

이런 점화식문제들 좀 찾아가며 연습좀 해야겠다.