-
프로그래머스 코딩테스트(특정 문자열로 끝나는 가장 긴 부분 문자열 찾기, 세로 읽기, 날짜 비교하기)코딩테스트 2023. 5. 25. 00:04
<특정 문자열로 끝나는 가장 긴 부분 문자열 찾기>
문제 설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.풀이
class Solution {
public String solution(String myString, String pat) {
String answer = "";
int n = 0;
for(int i=myString.length()-1;i>=0;i--){
if(myString.substring(i).contains(pat)){
n = i;
break;
}
}
return myString.substring(0,n+pat.length());
}
}다른 사람 풀이
class Solution { public String solution(String myString, String pat) { String answer = ""; int idx = myString.lastIndexOf(pat); answer = myString.substring(0, idx) + pat; return answer; } }
<세로 읽기>
문제 설명
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.풀이
class Solution {
public String solution(String my_string, int m, int c) {
String answer = "";
for(int i=c-1;i<my_string.length();i=i+m){
answer+=my_string.charAt(i);
}
return answer;
}
}<날짜 비교하기>
문제 설명
정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.
만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.풀이
class Solution {
public int solution(int[] date1, int[] date2) {
for(int i=0;i<3;i++){
if(date1[i]<date2[i]){
return 1;
} else if(date1[i]>date2[i]){
return 0;
}
}
return 0;
}
}다른 사람 풀이
import java.time.LocalDate; class Solution { public int solution(int[] date1, int[] date2) { LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]); LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]); if (dateA.isBefore(dateB)) { return 1; } else { return 0; } } }
'코딩테스트' 카테고리의 다른 글
프로그래머스 코딩테스트(빈 배열에 추가, 삭제하기, 소인수분해, 7의 개수) (0) 2023.05.31 프로그래머스 코딩테스트(컨트롤 제트, 문자열이 몇 번 등장하는지 세기, 이차원 배열 대각선 순회하기) (0) 2023.05.25 프로그래머스 코딩테스트(배열 만들기 5, 간단한 논리 연산, 이진수 더하기) (0) 2023.05.23 프로그래머스 코딩테스트(한 번만 등장한 문자, 수열과 구간 쿼리 1, 1로 만들기) (0) 2023.05.22 프로그래머스 코딩테스트(수 조작하기 2, 문자열 뒤집기, 수열과 구간 쿼리 3) (0) 2023.05.22