본문 바로가기

알고리즘 문제풀이/SWEA(SW Expert Academy)

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

문제 출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN&categoryId=AV19AcoKI9sCFAZN&categoryType=CODE&problemTitle=1289&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1&&&&&&&&& 

 

SW Expert Academy

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

swexpertacademy.com

 

 

문제

 

 

설명

문자열을 차례대로 하나씩 비교해 보면서, 값이 다르면 바꾼 횟수를 하나 추가하는 방식으로 풀었습니다.

charAt()과 startsWith()함수를 적절히 활용하는 것이 포인트입니다!

 

 

코드

import java.util.Scanner;

public class SWEA1289_bitChange {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt(); //test case 수
		
		for(int tc=1; tc<=T; tc++) {
			String s = sc.next(); // 한 줄 입력받음. 원래 상태
			int cnt =0; //바꾼 횟수 저장할 변수
			
			//시작이 1인 경우 -> 처음부터 바뀜
			if(s.startsWith("1")) {
				cnt++;
			}
			//문자열을 char배열로 만들지 않고, 바로 chatAt으로 접근!
			for(int j=0; j<s.length()-1; j++) {
				if(s.charAt(j)!= s.charAt(j+1))
					cnt++;
			}
			System.out.println("#" + tc + " " + cnt);
		}
	}
}