3/11 정리

안대륜·2022년 3월 12일
post-thumbnail

알고리즘

1 .직사각형 별찍기

import java.util.Scanner;
public class Solution {
    public static void main(String[] args) {
    scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    for (int i =0;  i< b; i++) { // 행을만듬
    	for(int j=0; j<a; j++) { // 열을 만금
        	System.out.println("*");
        }
        System.out.println();
	    }
    }
 }

1 . 먼저 스캐너라는 걸 불러와서 사용자가 입력할때 값을 불러오게 한다
2 . 정수를 담을 변수 a ,b 에스캐너 값을 입력해준다
3 . 이중 반복문으로 행과열을 만들어주고 반복문 으로 나오는 값들은 별로 프린트해준다.
4. 그후 프린트를 빈값을 해주면 된다

2 . 짝수와 홀수

class Solution {
    public String solution(int num) {
    return num % 2 ==0 ? "Even : Odd ;
//    	   	 조건문         참   거짓일경우
    }
  }

1 . 삼항연산자를 이용하여서 간단히 한줄로num값이 2로 나누었을때 나머지가 0이라면 참이므로 짝수를 호출하고 거짓일 경우에는 홀수를 출력한다

3 . 가운데 글자 가져오기

class Solution {
    public String solution(String s) {
    return s.substring((s.length()-1) /2 , s.length()/2 +1);
    //										2번째 조건은 포함안함
    }
 }

1 . 서브스트링을 이용해서 s의 인덱스를 짤라준다
5에서의 1번조건은 5 -1 / 2 =2 이고 , 2번조건은 5/2 + 1 =3이므로 2번째부터 3번째 사이의 인덱스 값을 가져오게되므로 가운데숫자인 c를 출력한다
2 . 4글자인경우 1번조건 4 -1 /2 =1 이고 2번조건 4 /2 +1 =3이므로 1에서부터 3번쨰 사이의 인덱스값을 가지고 오는 것이므로 we가 출력된다.

( 1 번조건문 , 2번조건문 사이의 값을 가지고오는것임)

4 . 두 정수사이의 합

1번풀이

class Solution {
    public long solution(int a, int b) {
    long sum =0;
    if (a >b) {
    int temp = b;
    int b= a;
    int a= temp;
    }
    } for (int i=a; i<=b; i++) {
    	sum += i;
    }	return sum;
    }

1 . 결과값을 담을 변수 섬을 만들어주고
2 . 만약 a가 b보다 클경우 오름차순으로 하기위해서 변수 템프를 b자리에 지정시켜주고 b가 a보다 작으니까 앞자리에 놓아주고 a는 큰수이니까 템프롤 이용해서 뒷자리에 지정해줍니다.
3 . 반복문의 시작지점을 a부터 돌려서 b보다 작거나 같을때 증감하면서 실행시키도록 한후에 결과값을 담을 섬에다가 += 으로 값을 넣어주고 섬을 출력

2번풀이

class Solution {
    public long solution(int a, int b) {
     long sum =0; 
     int start =0 , end =0;
     if (a == b) {
     return a // (b해도 상관없음)
     } else if (a < b) {
     	start = a;
        end = b;
     } else if (a > b) {
     	start = b;
        end = a;
     }
     for (int i =start; i<=end; i++) {
     	sum += i;
     } return sum;
    }
    }

1 . 결과값을담을 섬과 스타트와 엔드라는 정수형 변수를 생성해줘서 나중에 a와b의 자리를 지정해주도록 하겠습니다.
2 . 만약 a와b가 같다면 둘중 아무값을 리턴 해주도록하고
3 . b가 a보다 크다면 스타트와 엔드 변수를 이용해서 자리를 지정해줍니다.
4 . a가 b보다 크다면 마찬가지로 오름차순으로 맞는 자리에 지정을해줍니다
5. 두정수들의 사이의 값을 구하기 위하여 반복문으로 start부터 시작해서 end 값과 작거나 같을때까지 증감해서 반복하게 하여주고
6 . 그렇게 나온 값들을 섬에다가 += 으로 넣어준후 섬을 출력합니다.

자바 강의

상수 (final)은 대문자의 명명 규칙을 사용한다
불린데이터 타입 값은 트루아니면 폴스만 가질수 있다.
char데이터 타입은 문자 하나만을 표현할수있다 (여러개 입력시 오류가난다.)


작은 타입이 큰타입에 들어간것을 형변환이 일어났다고 하고 ,
큰타입의 값을 작은타입에 넣을수 없다
예) int x =50000;
long y=x;(실행가능)
ㅡㅡㅡㅡㅡㅡㅡ
long x2 = 5;
int y2= x2; (에러)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
long x2 =5;
int y2 = (int) x2 (실행가능 ) - 강제형변환이라고한다

연산 : 데이터를 처리하여 결과를 산출하는것
연산자 : 연산에 사용되는 표시나 기호
피연산자: 연산 대상이 되는 데이터 (리터럴 ,변수)
변수앞에 플러스 연산 부호자가 붙게되면 플러스는 부호값을 그대로 유지시켜주는 역할을 하고 , 마이너스는 부호를 반대를 바꿔주는 역할을 함 (음수는 양수로 , 양수는 음수로)

)Ex

int i1 = -5;

int i2 =+i1; (-5그대로출력)

int i3 = -i1; (양수 5를 출력

연산자 우선순위

최우선 연산자 : .
단항 연산자 : ++ -- ! ~ +/- : 부정,bit변환 > 부호 > 증감
산술 연산자 : / % > + - > shift/시프트 연산자 >> << >>>
비교연산자 : > < >= <= == !=
비트연산자 : & | ^ ~
논리연산자 && > || !
삼항 연산자 조건식 ?
대입 연산자: =
= /= %= += -=![]

논리연산자 ^는 서로 다를때 트루를 리턴함

Ex)
boolean b1 =true;
boolean b3 =true;
(b1 ^ b3) : false를리턴
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
boolean b1 =true;
boolean b3 =false;
(b1 ^ b3) : true를 리턴

0개의 댓글