반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준] 백준 25630번 팰린드롬 소떡소떡 자바(JAVA)

1) 문제번호 : 25630

 

2) 문제 출처

https://www.acmicpc.net/problem/25630

 

25630번: 팰린드롬 소떡소떡

소떡소떡은 기다란 꼬치에 소세지와 떡을 끼운 음식이다. 편의상 소떡소떡을 알파벳 s와 t로만 구성된 길이 $N$의 문자열로 생각하자. 알파벳 s는 소세지를, t는 떡을 의미한다. 위 그림은 길이가

www.acmicpc.net

 

2. 문제

소떡소떡은 기다란 꼬치에 소세지와 떡을 끼운 음식이다. 편의상 소떡소떡을 알파벳 s와 t로만 구성된 길이 의 문자열로 생각하자. 알파벳 s는 소세지를, t는 떡을 의미한다.

위 그림은 길이가 인 소떡소떡의 예시이다. 유진이는 소떡소떡을 먹기 전에 소떡소떡을 팰린드롬 소떡소떡으로 만들려고 한다. 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열을 말한다. 예를 들어 sts, tsst, tt는 팰린드롬이다.

유진이는 특별한 마법을 사용해서 꼬치에 꽂힌 소세지 하나를 떡으로 바꾸거나, 반대로 떡 하나를 소세지로 바꿀 수 있다. 위 그림은 마법을 한 번 사용해서 떡 하나를 소세지로 바꾼 그림이다.

위 그림은 마법을 한 번 더 사용해서 떡 하나를 소세지로 바꾼 그림이다. 이제 이 소떡소떡은 팰린드롬 소떡소떡이 되었다.

유진이가 먹으려고 하는 소떡소떡이 주어질 때, 이 소떡소떡을 팰린드롬 소떡소떡으로 만들기 위해서는 마법을 최소 몇 번 사용해야 할까?

 

 

3. 제약사항

 

4. 입력

첫째 줄에 소떡소떡의 길이 N이 주어진다.

둘째 줄에 소떡소떡을 의미하는 길이 의 문자열이 주어진다. 이 문자열은 알파벳 s와 t로만 구성되어 있다.

 

 

5. 출력

소떡소떡을 팰린드롬 소떡소떡으로 만들기 위해서 마법을 최소 몇 번 사용해야 하는지 출력한다.

 

6. 풀이

- 값을 입력 받고, 문자열 str에서 양 끝에서 안쪽까지 반복문을 돌린다.

- 반복문을 돌리는데, 각 값들을 비교하여 같을 경우에는 상관이 없는데, 같지 않을 경우에는 cnt를 늘려줘서 작업을 해야 하는 횟수를 출력하면 된다.

 

7. 소스 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

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());
		
		String str = br.readLine();
		
		int cnt = 0;
		
		for(int i = 0; i < str.length() / 2; i++) {
			String f = str.substring(i, i+1);
			String b = str.substring(str.length() - i - 1, str.length() - i);
			
			if(!f.equals(b)) {
				cnt++;
			}
		}
		
		System.out.println(cnt);
	}

}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기