알고리즘
5. 문자열을 정수로 바꾸기
1번째 방법풀이
class Solution { public int solution(String s) { boolean Sign = true; int result = 0; for (int i=0; i <s.length(); i++) { char ch = s.charAt(i); if char (ch == '-') { Sign = false; } else if (ch != '+') { result = result *10 + (ch - '0'); // } } return Sign? result : -1 *result; } }
1 . 논리연산자를 Sign을 트루라고 해놓고 결과값을 담을 변수 리절트도 준비한다.
2 . s의 길이만큼 반복문을 실행
3 . 문자데이터 ch를 charAt로 s의 인덱스 값들을 가지고올수있게해준다
4. 만약 ch가 마이너스라면 논리연산자 Sign은 폴스가 된다.
5 . 또, 그밖에 ch가 +기호를 가지고있지않으면 리절트값에 10을 곱한후 , + (ch - '0') (유니코드값으로 연산해준다 - 1의 유니코드값은 49 , 0의 유니코드값은 48 )
숫자가 담긴 문자형끼리 뺄셈을 해주기 위해서
6 . 삼항연산자를 이용하여서 Sign이 참이면 result값을 가져오고 거짓이라면 result값에 -1를 곱한 즉, 마이너스 -1234를 출력한다.
class Solution {
public int solution(String s) {
return Integer.parseInt(s);
}
}

class Solution {
public int solution(int[] numbers) {
int num =45;
for (int number : numbers) {
num -= number;
}
} return num;
}
1 . 0 ~9 까지의 없는숫자들을 찾아야하니까 일단 먼저 num 변수에 총합한값인 45를 넣어주고 없는 숫자들을 빼주기로 했다
2 . for -each 문을 이용하여서 더욱 간결하게 코드를 작성하였다.
3 . 0~9까지의 모두 더한값 45에서 numbers에서 돌린 반복문의 합을 빼면 어떠한 숫자가 빠져있는지를 알수있다.
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int result = 0;
for (int i=0; i <absolutes.length; i++) {
result += absolutes[i] * (signs[i]? 1 : -1);
}
} return result;
}
1 . absolutes의 길이만큼 반복문을 실행시켜준다
2 . 반복문으로 가지고온 absolutes의 인덱스 값들을 논리연산자 sign의 삼항 연산자를 통하여 양수인지 음수인지를 확인후 보내준다

class Solution {
public double solution(int[] arr) {
double result =0;
for (int i=0; i <arr.length; i++) {
result += arr[i] / (double)arr.length;
}
return result;
}
}
보자마자 바로 간단하게 풀었던 문제이다 말그대로 정수의 합에서 평균을 구하면된다
1 . 결과값을 담을 변수를 생성해준다.
2 . 반복문으로 arr의 길이만큼 실행시켜준다.
3 . 박복문으로 나온 arr의 인덱스값들을 arr의 길이만큼 나누어 평군을 구해준다
( [1,2,3,4] 를 입력하였을때 평균값이 2.5가 나오므로 (double)로 강제 형변환을 해주지않으면 오류가난다)

class Solution {
public String solution(String phone_number) {
String result =""
int length = phone_number.length() -4 ;
for (int i=0; i<length; i++) {
result += '*';
}
result += phone_number.substring(length);
return result;
}
}
전화번호 뒷자리4자리를 제외한것을 별표 처리를 하면된다
1 . 먼저 랭스라는 변수를 생성해주어서 폰넘버길이에서 뒤에서 4번째자리 까지 지정해주도록한다
2 . 생성해준 변수 랭스길이만큼 반복문을 실행하고 그실행된 값에는 별표시를 넣어준다
3. 결과값으로 폰넘버에 서브스트링(변수 length)로 인덱스를 나누어주도록하고 출력

class Solution {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = {};
answer =new int[arr1.length] [arr1[0].length];
for (int i =0; i< arr1.length; i++) {
for(int j=0; j <arr1[i].length; j++) {
answer[i][j] = arr1[i][j] +arr2[i][j];
}
}
return answer;
}
}

class Solution {
public long[] solution(long x, int n) {
long[] answer = new long[n];
for (int i =0; i <n; i++) {
answer[i] = x * (i+1);
}
return answer;
}
}

class Solution {
public long solution(int price, int money, int count) {
long answer =0;
for (int i=0; i<=count; i++) {
answer+= i * price;
}
return answer > money ? answer-money : 0;
}
}
1 . 먼저 결과값을 담을 answer를 생성해주고
2 . count(기구 이용횟수)만큼 반복하여준다
3 . 반복한 값 i 에 price(이용가격)를 곱하여서 총 내야할 비용을 answer에 할당해준다
4. 삼항 연산자를 통하여 만약 내야할 비용이 내가 가진금액보다 크면(참이면) 내야할 비용에서 가진비용 빼서 얼마가 더 필요한지 출력하고 거짓이면 0을 리턴해준다.

class Solution {
public String solution(int a, int b) {
String answer = "";
int[] monthDate = {31,29,31,30,31,30,31,31,30,31,30,31};
for (int i =1; i < a; i++) {
b+= monthDate[i -1];
}
switch (b% 7) {
case 1: answer = "FRI"; break;
case 2: answer = "SAT"; break;
case 3: answer = "SUN"; break;
case 4: answer = "MON"; break;
case 5: answer = "TUE"; break;
case 6: answer = "WED"; break;
case 0: answer = "THU"; break;
}
return answer;
}
} // 윤년은 4년에 한번 돌아오는 2월의 날짜수가 29일인 해입니다. 월드컵처럼 4년만에 무조건 돌아오는 것이 아닌 특별한 규칙이 있다고합니다.
// - 4로 나누어 떨어지는 해는 윤년, 그 밖의 해는 평년으로 한다.
// - 4로 나누어 떨어지지만 100으로 나누어 떨어지는 해는 평년으로 한다.
// - 단, 400으로 나누어 떨어지는 해는 윤년으로 한다