๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1120_๋ฌธ์ž์—ด

๋ฟŒ์•ผ._. 2024. 6. 17. 16:41

Silver IV

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/1120)

< ๋ฌธ์ž์—ด >

 

๋ฌธ์ œ ํ’€์ด 

 

A์˜ ์•ž ๋˜๋Š” ๋’ค์— ์•„๋ฌด ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์–ด๋–ค ์•ŒํŒŒ๋ฒณ์„ ์ถ”๊ฐ€ํ• ์ง€๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. A์™€ B์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๋ฏ€๋กœ B์™€ ์ผ์น˜ํ•˜๋Š” ์•ŒํŒŒ๋ฒณ์„ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์ฐจ์ด๋ฅผ ์ตœ์†Œ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ คํ•  ๊ฒƒ์€ ์•ž๊ณผ ๋’ค์— ์ถ”๊ฐ€ํ•  ๊ฐœ์ˆ˜์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•ด ๋ณธ๋‹ค. 

 

๋งŒ์•ฝ A์™€ B์˜ ๊ธธ์ด ์ฐจ์ด๊ฐ€ 3์ด๋ผ๋ฉด (์•ž, ๋’ค) ์ˆœ์œผ๋กœ (3,0), (2,1), (1,2), (0,3)๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ™•์ธํ•ด ๋ณธ๋‹ค.

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class _1120_ { // ๋ฌธ์ž์—ด
	static String A, B;

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(bf.readLine());

		A = st.nextToken();
		B = st.nextToken();

		int d = B.length() - A.length();

		int result = B.length();
		if (d == 0) {
			result = Math.min(result, diff(0));
		} else {
			while (d >= 0) {
				result = Math.min(result, diff(d--));
			}
		}

		System.out.println(result);
	}

	private static int diff(int left) {
		int answer = 0;
		for (int i = left; i < left + A.length(); i++) {
			if (A.charAt(i - left) != B.charAt(i)) {
				answer += 1;
			}
		}
		return answer;
	}
}
๋ณ€์ˆ˜)
A, B : ๋ฌธ์ž์—ด
d : A์™€ B์˜ ๊ธธ์ด ์ฐจ
result : A์™€ B์˜ ์ฐจ์ด ์ตœ์†Œ

 

A์™€ B์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. A์™€ B์˜ ๊ธธ์ด ์ฐจ์ด๋ฅผ ๊ตฌํ•œ ํ›„ ๊ธธ์ด ์ฐจ์ด๊ฐ€ 0์ด๋ผ๋ฉด A์™€ B์˜ ์ฐจ์ด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ธธ์ด ์ฐจ์ด๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด ์•ž๊ณผ ๋’ค์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•œ ํ›„ diff ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. diff์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ํ†ตํ•ด A์™€ B์˜ ์ตœ์†Œ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค. 

 

diff(int left)

์™ผ์ชฝ์— ๋ช‡ ๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค. ์™ผ์ชฝ์— ์ถ”๊ฐ€ํ•œ ๊ฐœ์ˆ˜๋งŒํผ B์™€ ์ผ์น˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๊ทธ ํ›„๋ถ€ํ„ฐ A์™€ B๋ฅผ ๋น„๊ตํ•ด ์ฐจ์ด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.