남극

기초부터 다시 본문

JAVA/Java Basic

기초부터 다시

펭1구 2019. 8. 1. 19:38

swing을 하던 도중에 에러가 나고 듣던 강의하시는 분에게 문의를 하여 해결을 하려 했지만 해결이 안 되어서 

자바를 기초부터 놓친것이 있나 다시 하나하나하고 있어요

아주 기초적인 부분은 건너뛰었지만 세세한 부분을 파고들다 보니 조금 더 자세한 부분을 알게 되어서 좋은 것 같아요

그냥 항상쓰던 부분들에 대해서도 기초적인 원리에 대하여 궁금증이 있었는데 그것을 알아가다 보니  어떤 식으로 하면 더 좋은 소스가 나올까 하는 고민이 더 커지게 되었네요

아직은 1학년이어서 대회경험을 직접 해보지는 못했지만 정말 열심히 해서 2학년 때 매달을 따고 싶어요 ㅎ..

 

그래서 오늘은 이번주 월, 화, 수에 풀었던 기초 알고리즘에 대하여 써보려고 해요

 

우선 첫번째는 형변한입니다

int 1개와 float 2개를 받아 정수로 출력하는 것이에요

 

소스

package assignment1;

import java.util.Scanner;

public class MainClass {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		float b = sc.nextFloat();
		float c = sc.nextFloat();	
		float result = (float)a+b+c;	
		System.out.println((int)result);
	
	}	
}

 

두 번째는 

 

package assignment2;

import java.util.Scanner;

public class MainClass {
    final static char[] mo   = { 0x3131, 0x3132, 0x3134, 0x3137, 0x3138, 0x3139, 0x3141, 0x3142, 0x3143, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };
    final static char[] ja= { 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163 };
    final static char[] bat = { 0, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };
      
    public static String assignment(char s) { 
        int a, b, c; 
        String result = "";
            char han = s;
            if (han >= 0xAC00 && han <= 0xD7A3) { 
                c = han - 0xAC00;
                a = c / (21 * 28);
                c = c % (21 * 28);
                b = c / 28;
                c = c % 28;
                result = result + mo[a] + ja[b];
                if (c != 0) result = result + bat[c] ; 
                System.out.println(String.format("자음: %c",mo[a]));
                System.out.println(String.format("모음: %c",ja[b]));
                System.out.println(String.format("종성: %c",bat[c]));
            } 
            else {
                result = result + han;
            }   
        return result;
    }
    public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	char s = sc.next().charAt(0);
    	assignment(s);
	}    
}

 

이런 식으로 쓰다가는 너무 길어지겠네요

재미있었던 것들만 뽑아서 쓰겠습니다

 

이건 속이 빈 사각형입니다

package assignment6;


import java.util.Scanner;

public class MainClass {
public static void main(String[] args) {
		int h,w;
		Scanner sc = new Scanner(System.in);
		h = sc.nextInt();
		w = sc.nextInt();
		for (int i = 0; i < h; i++) {
			for (int j = 0; j < w; j++) {
				if(i==0 || j==0 || i==h-1 || j==w-1)
					System.out.print("* ");
				else
					System.out.print("  ");
				}
			System.out.println();
		}
	}
}

 

 

다음

 

import java.util.Scanner;

public class MainClass {
	public static void main(String[] args) {
		   Scanner sc = new Scanner(System.in);
		   int leng = sc.nextInt();
		   int arr[][] = new int[leng][leng];
		   int count=0;
		   for (int x = 0; x < leng; x++) {
			   if(x%2==0) {
				   for (int y = 0; y < leng; y++) {
						count++;
						arr[y][x] = count;
					}
				}
			   else {
				   for (int y = leng-1; y >= 0; y--) {
					count++;
					arr[y][x] = count;
				}
			   }
		}
		   for (int y = 0; y < leng; y++) {
			for (int x = 0; x < leng; x++) {
				System.out.print(String.format("  %d", arr[y][x]));
			}
			System.out.println();
		}
	}
}
  

 

결과로 보여드릴게요

 

숫자나열

이런 식으로 숫자가 나열됩니다 

훨씬 많기는 하지만 이 정도로 정리하도록 하고 또 알게 된 것 중 하나인

원시자료형과 참조자료형에 대하여 알게 되었어요

 

일단 원시자료형은 기본적으로

더보기

원시자료형

byte 크기 > 1byte

short크기 > 2byte

int크기 > 4byte

long크기 > 8byte

char크기 > 2byte

flaot크기 > 4byte

double크기 > 8byte

boolean크기 > 1bit 

이 정도가 원시자료형입니다 

참조자료형은 

더보기

참조자료형

배열

클래스

인터페이스

 

값이 아닌 객체의 주소를 가지고 있는 자료형입니다

 

이 둘의 차이점은 간단하게 원시자료형은 순수한 값 하나 참조자료형은 여러 가지 값을 받을 수 있다는 것입니다

참조자료형은 new로 인스턴스화를 해주어야 하는데 

예외적으로 String은 new를 사용하지 않고 

String str = "";

이런 식으로 설정해줄 수 있습니다

 

쓸 것은 많지만 오늘은 여기까지 쓰도록 하겠습니다

안녕히 가세요 ㅎㅎ

'JAVA > Java Basic' 카테고리의 다른 글

Java - Math 클래스  (0) 2020.02.22
자바 클래스  (0) 2019.08.05
DB세팅, 추상화공부  (0) 2019.07.23
자바 코딩(3)  (1) 2019.06.18
자바 코딩(2)  (1) 2019.06.18
Comments