학습량이 많아짐에 따라 블로깅 방식에 변화를 주려고 한다.
앞으로는 배운 목록만 정리하고, 이해하기 힘들었거나 중요한 내용들 위주로 정리하고자 한다.
연산자(Operator)
int num = true ? 7 : 11;
// 7출력
콘솔 출력
지시자
System.out.printf("%s%n", "Hello JAVA"); // 줄바꿈이 된다.
System.out.printf("%s%n", "Kim" + "Coding");
System.out.printf("%d%n", 3+6);
System.out.printf("지금은 %s입니다", 2022 + "year"); // 자동 타입 변환이 일어난다.
System.out.printf("나는 %c%s입니다", '김', "코딩"); //여러 개의 인자를 넣을 수 있다.
조건문
package com.company;
public class Main {
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
String yourPosition = userInput.nextLine(); //입력받기
switch(yourPosition){
case "Senior" : // Senior일 경우
System.out.println("700만원");
break;
case "Junior" : //Junior 또는 Manager일 경우
case "Manager" : //실행문이 같으면 이렇게 작성 가능
System.out.println("500만원");
break;
default:
System.out.println("300만원");
break;
}
}
}
cf) 자바 14에서는 ,
로 여러 조건을 한 번에 처리 가능
1~5번은 너무 쉬워서 문제 설명 등 스킵하고 간략하게 결과만 적어두겠다.
3번
나의 풀이
answer
4번
나의 풀이
answer
5번
ans
7번
수를 입력받아 3 그리고 5로 각각 나눈 뒤 나머지 값에 따라 알맞은 메시지를 리턴하라.
나의풀이
앞 조건이랑 뒷 조건이 겹칠 때 가장 작은조건을 위에 위치시키자.
ex) 숫자30을 대입한다고 할 때 fizzbuzz를 아래에 위치시키면 fizz가 출력 된다.
8번
두 개의 수와 기호를 입력받아 알맞게 계산한 값을 리턴하라.
나의 풀이
switch문 안에 return을 넣어서 오류가 나서 고생했다.
return을 넣으면 알아서 break걸리기 때문에 둘 중 하나만 쓰자.
ans
9번
특정 달(month)을 입력받아 각 달에 몇 일이 있는지 리턴하라.
나의풀이
ans
10번
요일을 입력받아 해당 요일의 다음 요일을 리턴하라.
나의풀이
ans
노가다 문제다. 배열로 조금 더 간단하게 풀었다.
11번
2가지 조건을 모두 만족하는지 검사하라.
나의풀이
package com.codestates.coplit;
public class Solution {
boolean ans;
public boolean isEitherEvenAndLessThan9(int num1, int num2) {
if (num1%2 == 0 || num2%2 ==0) {
if (num1 <9 && num2 <9)
ans = true;
}else {
ans = false;
}
return ans;
}
}
ans
12번
점수를 입력받아 점수에 해당하는 등급을 리턴하라.
조건
나의풀이
package com.codestates.coplit;
public class Solution {
char ans;
public char convertScoreToGrade(int score) {
if ( score >100 || score<0) {
ans = 'X';
}else if (score >= 90) {
ans = 'A';
}else if (score >= 80) {
ans = 'B';
}else if (score >= 70) {
ans = 'C';
}else if (score >= 60) {
ans = 'D';
}else {
ans = 'F';
}
return ans;
}
}
ans
String 타입을 리턴해야 한다.
각 등급의 최저 점수는 아래와 같다. ("F"의 경우 최대 점수를 표기)
90 이상 --> "A"
80 이상 --> "B"
70 이상 --> "C"
60 이상 --> "D"
60 미만 --> "F"
100을 초과하거나 0 미만인 경우, 문자열 "INVALID SCORE"를 리턴하라.
각 등급의 최고 점수보다 7점 이하인 경우, 등급과 함께 "-"를 리턴해야 한다. (단, 93점의 경우에는 A를 리턴해야 함.)
각 등급의 최저 점수보다 8점 이상인 경우, 등급과 함께 "+"를 리턴해야 한다.
F+ 와 F- 는 존재하지 않는다.
나의풀이
package com.codestates.coplit;
public class Solution {
public String convertScoreToGradeWithPlusAndMinus(int score) {
// TODO:
String grade;
if (score >100 || score<0) {
return "INVALID SCORE";
}
if (score == 100) {
return "A+";
}
if (score>=90) {
grade = "A";
} else if (score>=80) {
grade = "B";
} else if (score>=70) {
grade = "C";
} else if (score>=60) {
grade = "D";
} else {
grade = "F";
}
if (!grade.equals("F")) {
int extra = score % 10;
if (extra>=8) {
grade = grade + "+";
} else if (extra<=2) {
grade = grade + "-";
}
}
return grade;
}
}
ans
14번
삼각형의 세 변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴하라.
package com.codestates.coplit;
public class Solution {
boolean ans;
public boolean isPythagorean(int side1, int side2, int side3) {
if(side1 > side2 && side1 > side3){
if((side2*side2)+(side3*side3) == side1*side1){
ans = true;
}
}
if(side2 > side1 && side2 > side3){
if((side3*side3)+(side1*side1) == side2*side2){
ans = true;
}
}
if(side3 > side1 && side3 > side2){
if((side1*side1)+(side2*side2) == side3*side3){
ans = true;
}
}
return ans;
}
}
ans
15번
두 개의 boolean 값을 입력받아 or 연산을 적용한 것과 같은 결과를 리턴하라.
package com.codestates.coplit;
public class Solution {
public boolean or(boolean expression1, boolean expression2) {
// TODO:
boolean result = true;
if(!expression1 && !expression2) {
result = false;
}
return result;
}
}
ans
16번
시, 분, 초를 입력받아 1초를 더한 결과값을 특정 형태의 메시지로 리턴하라.
1초 뒤에 {hour}시 {minute}분 {second}초 입니다
형식으로 리턴하라.package com.codestates.coplit;
public class Solution {
public String addOneSecond(int hour, int minute, int second) {
// TODO:
second++;
if(second>59){
minute++;
second-=60;
if(minute>59){
hour++;
minute-=60;
if(hour>23){
hour-=24;
}
}
}
String str = String.format("1초 뒤에 %d시 %d분 %d초 입니다", hour, minute, second);
return str;
}
}
ans
package com.codestates.coplit;
public class Solution {
public String addOneSecond(int hour, int minute, int second) {
if (second == 59) {
minute += 1;
second = 0;
} else {
second += 1;
}
if (minute == 60) {
hour += 1;
minute = 0;
}
if (hour == 24) {
hour = 0;
}
return "1초 뒤에 " + hour + "시 " + minute + "분 " + second + "초 입니다";
}
}