본문 바로가기

Java/SWEA

[JAVA] SWEA 1289. 원재의 메모리 복구하기

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV19AcoKI9sCFAZN&categoryId=AV19AcoKI9sCFAZN&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

- 목표 메모리와 현재 메모리를 처음부터 비교하면서, 다른 부분이 나오면 변경횟수를 증가시키고 그 지점부터 끝까지의 메모리 상태를 목표 메모리의 해당 상태로 변경

 

 

 

정답 

 

import java.util.*;

public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		
		for (int t=1; t<=T; t++) {
			String memory = sc.next(); //목표 메모리 상태
			char cur[] = memory.toCharArray();
			int answer =0;
			
			//초기 메모리 상태 '0'으로 초기화
			for(int i=0; i<cur.length; i++)
			{
				cur[i]='0';
			}
			
			//현재 메모리와 목표 메모리를 비교하여 answer 계산
			for(int i=0; i<memory.length(); i++)
			{
				if(cur[i]!=memory.charAt(i))
				{
					answer++;
					//연속된 부분 한 번에 변경
					for(int j=1; j<memory.length();j++)
					{
						cur[j] = memory.charAt(i);
					}
				}
			}
			System.out.printf("#%d %d\n", t, answer);
		}
	}
}