30.가운데 글자 가져오기

1. 내가 푼 코드
class Solution {
public String solution(String s) {
String answer = "";
char[] sArray= s.toCharArray();
int a= (sArray.length)/2;
if(sArray.length%2==0)
answer=String.valueOf(sArray[a-1])+String.valueOf(sArray[a]);
else answer=String.valueOf(sArray[a]);
return answer;
}
}
2.다른 분 코드-(1)
class StringExercise{
String getMiddle(String word){
return word.substring((word.length()-1)/2, word.length()/2 + 1);
}
다른 분 코드-(2)
class StringExercise{
String getMiddle(String word){
return word != null ? word.substring((word.length()-1)/2,(word.length()+2)/2) : "";
}
- String문자열을 char배열로 바꾸는 함수: str.toCharArray();
- char형을 String으로 함수: String.valueOf(c);
- 문자열 자르기 함수, index부터 끝까지 자르거나 index1~index2까지 자름: str.substring(index 1,index2);
31. 수박수박수박수박수박수

1.내가 푼 코드
class Solution {
public String solution(int n) {
String answer = "";
String a="수";
String b="박";
for(int i=0;i<n;i++){
if(i%2==0)
answer+=a;
else answer+=b;
}
return answer;
}
}
2.다른 분 코드-(1)
public class WaterMelon {
public String watermelon(int n){
return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);
}```
다른 분 코드-(2)
for(int i=0;i<n;i++) {
result +=(i%2==0)? "수":"박";
}
32.내적

1.내가 푼 코드
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
for(int i=0;i<a.length;i++){
answer+=a[i]*b[i];
}
return answer;
}
}
2.다른 분 코드-(1)
import java.util.stream.IntStream;
class Solution {
public int solution(int[] a, int[] b) {
return IntStream.range(0, a.length).map(index -> a[index] * b[index]).sum();
}
}``````
코드를 입력하세요
33.약수의 개수와 덧셈

1.내가 푼 코드
public int solution(int left, int right) {
int answer = 0;
int count = 0;
for (int a = left; a <= right; a++) {
count = 0;
for (int i = 1; i <= a; i++) {
if (a % i == 0)
count++;
}
if (count % 2 == 0)
answer += a;
else answer -= a;
}
- 처음에 int[] count =new count[1000];으로 해서 a~b인덱스에 각 약수 count를 모두 저장했는데,
런타임에러가 떠서 그냥 배열이 아닌 정수형 하나로 0으로 초기화하고 수정.
- for문을 두 번 썼다가 중복된 걸 깨닫고 아래에 합침.
2.다른 분 코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for (int i=left;i<=right;i++) {
if (i % Math.sqrt(i) == 0) {
answer -= i;
}
else {
answer += i;
}
}
return answer;
}
}