Solution 1) 내 풀이
class Solution {
public int solution(String my_string, String is_suffix) {
int myIdx = my_string.length() - 1;
int isIdx = is_suffix.length() - 1;
int answer = 0;
for (int i = 0; i < is_suffix.length(); i++) {
answer = 0;
// 원문과 비교자의 끝 문자가 같지 않다면 끝내기 || 비교자가 더 길다면 끝내기
if (is_suffix.charAt(isIdx) != my_string.charAt(myIdx) || myIdx < isIdx) {
break;
}else {
if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx + i)) {
answer = 1;
}
}
}
return answer;
}
}
시행착오) else 의 if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx + i)) 조건
class Solution {
public int solution(String my_string, String is_suffix) {
int myIdx = my_string.length() - 1;
int isIdx = is_suffix.length() - 1;
int answer = 0;
for (int i = 0; i < is_suffix.length(); i++) {
answer = 0;
if (is_suffix.charAt(isIdx) != my_string.charAt(myIdx) || myIdx < isIdx) {
break;
}else {
if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx)) {
answer = 1;
}
}
}
return answer;
}
}
처음에 else의 조건문에 is_suffix의 문자와 비교하려는 my_string의 문자를 myIdx - isIdx로 뒀다.
반복문을 돌며 하나하나 비교해서 확인이 돼야하는데 그렇지 못해 에러가 났음을 확인하고 나중에 (밥먹고 나니 비로소..)보이게 돼 수정 후 성공 할 수 있었다.
Solution 2) 다른 사람의 풀이 _ endsWith 메서드 사용
class Solution {
public int solution(String my_string, String is_suffix) {
if(my_string.endsWith(is_suffix)) {
return 1;
} else {
return 0;
}
}
}
접미사 메서드가 있었당..
class Solution {
public int solution(String my_string, String is_suffix) {
return my_string.endsWith(is_suffix) ? 1 : 0;
}
}
그래서 활용해봤다.. 걍 요렇게 끝낼 수 있다 또 배웠다 ㅜㅜ
'연습문제 > 프로그래머스, 입문' 카테고리의 다른 글
[프로그래머스 입문_java] 컨트롤 제트 (1) | 2023.10.29 |
---|---|
[프로그래머스 기초_java] 문자열 뒤집기 (StringBuilder) (0) | 2023.10.26 |
구슬을 나누는 경우의 수 (BigInteger의 첫 등장) (0) | 2023.10.25 |
모스부호(1) (char 타입의 형변환과 산술연산의 관계) (0) | 2023.10.25 |
진료 순서 정하기 (0) | 2023.10.24 |