반응형
👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇
문제 해결고민
규칙을 찾는게 관건이었다.
얼추 계산해 보니 좌측에서 우측으로 순회를 1번 돌고
우측에서 좌측으로 순회를 한번 더 돌아야 하는 것 같았다.
하지만 규칙을 찾지 못하여서 많이 당황했다
선생님의 풀이를 보고 알게 된 사실
작은 수를 넣으면 되는 거였다는 것..
풀이과정
import java.util.Scanner;
public class Main {
public int[] solution(String str, char t) {
int[] answer = new int[str.length()];
int p = 1000;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == t) {
p = 0;
answer[i] = p;
} else {
p++;
answer[i] = p;
}
}
p=1000;
for (int i = str.length()-1; i >= 0 ; i--) {
if (str.charAt(i) == t) p = 0;
else {
p++;
answer[i] = Math.min(answer[i], p);
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String s = in.nextLine();
char t = in.next().charAt(0);
for (int x : T.solution(s,t)) System.out.print(x + " ");
}
}
반응형
'👩🏻💻 𝐋𝐚𝐧𝐠𝐮𝐚𝐠𝐞 > ⠀⠀⠀⠀ Aʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글
Algorithm - 암호 (0) | 2023.11.07 |
---|---|
Algorithm - 문자열 압축 (0) | 2023.11.01 |
Algorithm - 숫자만 추출 (1) | 2023.10.20 |
Algorithm - 유효한 팰린드룸 (0) | 2023.10.18 |
Algorithm - 회문 문자열 (0) | 2023.10.18 |