170. 가까운 1 찾기
class Solution {
public int solution(int[] arr, int idx) {
int answer = -1;
for(int i=idx; i<arr.length; i++){
if(arr[i] == 1){
answer = i;
break;
}
}
return answer;
}
}
<작성한 코드>
간단한 문제다. i는 idx부터 arr의 길이까지 반복시켜 줬고 arr [i]가 1이면 answer에 i값을 넣어줬다. 그 후 answer을 반환시켜 주고 종료했다.
171. 카운트 다운
class Solution {
public int[] solution(int start, int end_num) {
int[] answer = new int[start - end_num + 1];
int idx = 0;
for(int i=start; i>=end_num; i--){
answer[idx++] = start--;
}
return answer;
}
}
<작성한 코드>
간단한 문제다. answer의 0번째부터 start값부터 1씩 뺀 값을 차례로 넣어주고 반환하면 된다.
172. 글자 지우기
class Solution {
public String solution(String my_string, int[] indices) {
String answer = "";
StringBuilder my_string2 = new StringBuilder(my_string);
for (int i : indices) {
my_string2.setCharAt(i, ' ');
}
answer = my_string2.toString().replaceAll(" ", "");
return answer;
}
}
<작성한 코드>
StringBuilder 변수하나를 만들어줬다. 그 뒤 foreach문을 사용해서 i번째에 있는 문자를 공백문자로 변경시켰다. 그 뒤 my_string2를 배열형식으로 변환한 뒤 replaceAll을 사용해서 공백을 지워주고 반환하였다.
173. 배열 만들기 1
class Solution {
public int[] solution(int n, int k) {
int[] answer = new int[n/k];
int cnt = 0;
for(int i=1; i<=n; i++){
if(i%k == 0) answer[cnt++] = i;
}
return answer;
}
}
<작성한 코드>
간단한 문제다. i를 k로 나눠서 나머지가 0이되면 answer에 추가했다. 그리고 반환해 주면 된다.
174. 문자 개수 세기
class Solution {
public int[] solution(String my_string) {
int[] answer = new int[52];
for(char ch : my_string.toCharArray()){
if(ch >= 'A' && ch <= 'Z'){
answer[ch - 'A']++;
} else{
answer[ch - 'a' + 26]++;
}
}
return answer;
}
}
<작성한 코드>
배열의 길이는 52개이므로 먼저 answer를 선언해줬다. 그 뒤 foreach문으로 문자열 my_string을 문자형으로 바꿔주고 하나씩 대입해 준다. ch가 대문자이면 answer [문자 - 'A']를 해준 포인트에 +1을 해주고 소문자라면 answer [ch - 'a'를 해준 뒤 소문자는 26번째 인덱스부터 시작하니 +26을 해주고 그 부분에 1을 증가시켰다. 그 뒤 answer을 반환하였다.
175. qr code
class Solution {
public String solution(int q, int r, String code) {
String answer = "";
for(int i=0; i<code.length(); i++){
if(i%q == r) answer += code.charAt(i);
}
return answer;
}
}
<작성한 코드>
간단한 문제다. 반복문으로 모든원소를 비교하고 if문으로 i를 q로 나눴을 때 나머지가 r일 때만 answer에 더해줬다. 그 뒤 반환해 줬다.
176. 세로 읽기
class Solution {
public String solution(String my_string, int m, int c) {
String answer = "";
for(int i=c-1; i<my_string.length(); i+=m){
answer += my_string.charAt(i);
}
return answer;
}
}
<작성한 코드>
인덱스는 0부터 시작하니 시작점을 c-1로 지정해 줬다. my_string의 길이까지 반복해 주었고 i의 증가량은 m만큼 증가해 줬다. 그 뒤 answer을 반환해 줬다.
177. 문자열 뒤집기
class Solution {
public String solution(String my_string, int s, int e) {
String answer ="";
char[] ch = my_string.toCharArray();
while(s < e){
char temp = ch[s];
ch[s] = ch[e];
ch[e] = temp;
s++;
e--;
}
for(int i=0; i<ch.length; i++){
answer += ch[i];
}
return answer;
}
}
<작성한 코드>
ch에 my_string을 문자형으로 변환해서 넣어줬다. 그 후 while문으로 s와 e의 값을 변경해 주고 s는 1씩 증가, e는 1씩 감소시켜 줬다. 그 뒤 ch의 값을 answer에 넣고 반환해 주었다.
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (188~196번 문제풀이) (1) | 2023.10.19 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (178~187번 문제풀이) (1) | 2023.10.19 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (162~169번 문제풀이) (0) | 2023.10.18 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (150~161번 문제풀이) (1) | 2023.10.17 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (140~149번 문제풀이) (0) | 2023.10.16 |
남건욱's 공부기록