<항해99> 6일차 TIL

박건영(Parkgunyoung)·2022년 5월 15일
0

til

목록 보기
3/17
post-thumbnail


오늘도 결국 하루 늦은 블로그 ㅎㅎ

토요일에는 항상 밖에 있었던 것 같은데 평일과 다를 것 없이 공부를 하려니 어색했다...
대신 모든 분들이 정말 열정적으로 공부를 하셔서 나도 자극을 받고 불태우게 되었다..

<6일차 주100시간 책상에 앉아 있기 성공!>

👉<오늘 공부한 내용 정리>

오늘은 우선 대략적으로 자바라는 언어를 이해하는데 시간을 할애 했던 것 같다!

알고리즘 문제를 풀어보면서 자바를 어떤식으로 사용해야 하는지? 에 대해 이해하는 시간이 많았던 것 같다.

<별찍기 문제>
public class Q1별찍기 {
    public static void main(String[] args) {

        int a = 5;
        int b = 3;

        for(int i=0; i<b; i++){
            for(int j=0; j<a; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

///결과
*****
*****
*****

이 문제의 경우 이중 for문을 이용하여 i가 0으로 정의 된 후 다음 for문으로 넘어가고 j가 0으로 정의된 후 j가 a의 5만큼 도달할 때 까지 *을 찍고 다시 상위 for문으로 올라간 후 이걸 b의 3만큼 3번 반복 하게 된다.(어느정도 이해를 했지만 아직까지도 설명을 하려하면 어려운 것 같다..더 공부하자!)

<두 정수 사이의 합>
 public static long solution(int a, int b) {
        long answer = 0;

        if (a < b) { //만약 a가 b보다 작거나 같다면
            for (int i = a; i <= b; i++) {       
            //a부터 b까지 하나씩 증감한다
                answer +=i; 
//중요 x9999!!!! += 은 앞에 선언되어진 값에 더해준다. 
//반대로 =+는 값이 현재 선언된 값으로 변경됨!

            }
        } else  //만약 a가 b보다 크거나 같다면
            for (int i = b; i <= a; i++) {      
            //b부터 a까지 하나씩 증감한다
                answer +=i;
            }
        return answer;
    }
///결과
a값을 5 b값을 3 으로 지정하였을 경우

12

내가 한 풀이는 이렇다.
두 정수 a,b가 있을 때
if 문을 이용하여 만약 a 가 b보다 작을 경우
for 문으로 이동하고 for문에서 i값을 a로 할당하여 b만큼 하나씩 증감하게 한다!
그리고 그 값을 += 라는 연산자를 이용하여 0이라는 answer 변수에 for문이 끝날때까지 더해준다.

<아래는 다른분의 풀이인데 정말 머리가 띵할정도로 간단하게 수열의 합 공식을 이용하여 푸셨다....>
public static long solution2(int c, int d) {
        return sumAtoB(Math.min(c, d), Math.max(d, c)); 
// Math.min 은 int 값 중 작은 값을 가져오고 Math.max는 int 값 중 큰 값을 가져온다.
    }
    private static long sumAtoB(long c, long d){ 
//위의 내장 함수로 인해 c는3으로 바뀌고 d는 5로 바뀜!
        return (c+d)*(d-c+1)/2; 
 //등차수열의 합 공식 (d-c+1)*(c+d)/2; 이렇게 해도 동일함!
    }
}

////결과
c값을 5 d값을 3 으로 지정하였을 경우

12
👉주석처리 부분은 실행 시 결과 값이 나오는 프로세스를 정리해보았다!
String 문자열을 Integer 문자열로 바꾸기
public class Q5charStringToInteger {
    public static void main(String[] args) {
        System.out.println(solution( "12321", "24.32"));
    }
    public static int solution(String s,String n) {
        int answer = Integer.parseInt(s);
        // Integer.parseInt('n')는 n이 숫자나 문자로 구성되어 있을경우 숫자 부분만 지정한 진법으로 변환하는 함수!
        // Integer.parseInt(str,nBase)는 입력된 문자의 진법을 나타내고, 생략할 경우 10진수를 의미한다.
        //Float.parseFloat()함수는 숫자형 문자열을 입력받아 부동 소수점으로 변환하여 그 값을 반환해주는 함수.
        // ex) Float answer1 = Float.parseFloat(n);

        return answer;
    }
}

///결과
s값을 "12321" 문자열로 주었을 때

12321
<n값을 24.32 로 준 것을 주석처리 된 Float.parseFloat();을 실험해보기 위해 적은 것이다.>
이상으로 6일차 TIL을 마무리~ 이제 WIL 쓰러 가야지~ 공부는 많이하는데 머리가 따르지 않으니 밀리는게 많구나....ㅜㅠ

포기만 하지말자 내 자신아😂😂😂😂

profile
쓰러지면어때일어나면그만인걸

0개의 댓글