89. OX퀴즈
import java.util.*;
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for(int i=0; i<quiz.length; i++){
String[] result = quiz[i].split(" ");
int x = Integer.parseInt(result[0]);
int y = Integer.parseInt(result[2]);
int z = Integer.parseInt(result[4]);
String op = result[1];
int opInt;
if(op.equals("+")){
opInt = x + y;
} else {
opInt = x - y;
}
if(opInt == z){
answer[i] = "O";
} else {
answer[i] = "X";
}
}
return answer;
}
}
<작성한 코드>
quiz크기만큼 배열을 하나 생성했다. 그 뒤 배열길이만큼 for문을 반복해 줬고 result에 공백기준으로 잘라서 넣어줬다. 0번째엔 숫자, 1번째엔 기호, 2번째엔 숫자, 4번째엔 결괏값이 들어가 있을 것이다. 그래서 각각 저장해 준 뒤 1번째 값인 기호가 +이면 opInt에 더해주고 아니면 차를 구했다. 그 뒤 아래 fi문에서 값이 같으면 O를 대입, 다르면 X를 대입하고 반환했다.
90. 문자열 안에 문자열
class Solution {
public int solution(String str1, String str2) {
int answer = 0;
if(str1.contains(str2)){
answer = 1;
}else {
answer = 2;
}
return answer;
}
}
<작성한 코드>
contains을 써서 포함되는지 안되는지 확인한 뒤 포함되면 1, 포함되지 않으면 2를 넣고 반환했다.
91. 제곱수 판별하기
class Solution {
public int solution(int n) {
int answer = 2;
for(int i=1; i<=1000; i++){
if(i * i == n) answer = 1;
}
return answer;
}
}
<작성한 코드>
n의 범위는 1,000,000이라 했으니 i를 1000까지 설정해 줬다. 그 뒤 i*i가 n이 되면 제곱수이니 answer에 1을 대입, 아니라면 초기값 그대로 2를 반환해 줬다.
92. 세균 증식
class Solution {
public int solution(int n, int t) {
int answer = n;
for(int i=0; i<t; i++){
answer *= 2;
}
return answer;
}
}
<작성한 코드>
간단한 문제였다. t의 길이만큼 answer을 계속 2배씩 늘려주고 반환하였다.
93. 문자열 정렬하기(2)
import java.util.*;
class Solution {
public String solution(String my_string) {
String result = "";
for(int i=0; i<my_string.length(); i++){
char ch = my_string.charAt(i);
if(ch >= 'A' && ch <= 'Z') ch = (char)(ch + 32);
result += ch;
}
char[] answer = result.toCharArray();
Arrays.sort(answer);
return new String(answer);
}
}
<작성한 코드>
for문으로 my_string의 길이만큼 반복해 줬다. char형 변수 ch에 각 원소들을 넣어주고 이 값이 대문자이면 소문자로 변경한 뒤에 result에 대입해 줬다. 반복문이 종료되면 정렬을 해야 되기 때문에 char형 배열 answer를 생성하고 result로 초기화해 줬다. 그 뒤 Arrays.sort()를 사용해서 오름차순으로 정렬한 뒤 String형으로 변경해서 반환하였다.
94. 7의 개수
class Solution {
public int solution(int[] array) {
int answer = 0;
for(int i=0; i<array.length; i++){
while(array[i] > 0){
if(array[i] % 10 == 7) answer++;
array[i] /= 10;
}
}
return answer;
}
}
<작성한 코드>
배열의 길이만큼 for문을 사용했다. 안에서는 while문을 사용해서 0보다 작을 때까지 반복하고 array [i]에 담긴 값을 10으로 나눠서 나머지가 7일 때 answer++를 해줬다. 그 뒤 나누기 10을 해준 값을 다시 대입해 주고 answer값을 반환하였다.
'프로그래머스 문제풀이 > 알고리즘 (JAVA)' 카테고리의 다른 글
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (101~107번 문제풀이) (1) | 2023.10.05 |
---|---|
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (95~100번 문제풀이) (1) | 2023.10.04 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (82~88번 문제풀이) (0) | 2023.09.30 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (75~81번 문제풀이) (0) | 2023.09.29 |
[JAVA] 프로그래머스 알고리즘 문제풀이 - Level 0 (69~74번 문제풀이) (0) | 2023.09.28 |
남건욱's 공부기록