학습용 공간

개념정리) 4장 이벤트 처리

Android Studio (모바일 프로그래밍) 2020.07.13 starmk95

개념정리) 3장 사용자 인터페이스 기초

Android Studio (모바일 프로그래밍) 2020.07.13 starmk95

개념정리) 2장 App 기본 구조

Android Studio (모바일 프로그래밍) 2020.07.13 starmk95

개념정리) 1장 안드로이드

Android Studio (모바일 프로그래밍) 2020.07.13 starmk95

JAVA)10828번 스택 구현하기(ArrayList 사용)

import java.util.ArrayList; import java.util.Scanner; class MyStack { ArrayList stackArray; int size; public MyStack() { stackArray = new ArrayList(); size = 0; } public void push(int num) { stackArray.add(num); size++; } public int pop() { if (size > 0) { int top = stackArray.get(size - 1); stackArray.remove(size - 1); size--; return top; } else { return -1; } } public int size() { return size;..

알고리즘/백준 알고리즘(JAVA) 2020.07.13 starmk95

JAVA) length, length(), size()의 사용법과 차이

3가지 모두 길이(크기)를 구하기 위해 사용된다. 각 메소드들은 무엇의 길이를 구하는가에 따라 다르게 사용된다. length의 경우에는 배열의 길이를 구하는데 쓰인다. ex) Int[] intArray = new int[5]; int temp = intArray.length; -> temp = 5 length()의 경우에는 문자열(String)의 길이를 구하는데 쓰인다. ex) String word = "abcdefgh" int temp = word.length(); -> temp = 8 size()의 경우에는 Collection 타입 오브젝트의 길이를 구하는데 쓰인다. ex) Arraylist 객체의 길이 ex) ArrayList stringArray = new ArrayList(); int temp ..

JAVA 2020.07.12 starmk95

JAVA)10953번 A+B(6), 문자열 슬라이싱(split, substring 메소드), 문자열 정수로 변환하기(parseInt 메소드)

1,2 형식으로 들어오는 2개의 정수를 받기 위해서는 입력 문자열에서 ,를 기준으로 나누어줘야한다. 이것을 위해 String의 split 메소드를 사용했다. 문자열.split("슬라이스할기준문자") 형식으로 사용한다. String[] array = "abcdef".split("c"); 위 코드 실행 결과로 array[0] = "ab", array[1] = "def"가 생성된다. cf) String의 substring 메소드는 인덱스를 기준으로 슬라이싱하는 메소드이다. 문자열.substring(시작인덱스, 끝인덱스) 형식으로 사용 (시작인덱스는 포함, 끝 인덱스는 포함하지 않고(전까지) 슬라이싱한다. ex) "abcdefg".substring(2) -> "cdefg" (인덱스 하나만 들어갈 경우, 시작 인..

카테고리 없음 2020.07.12 starmk95

JAVA)10951번 A+B (4) , 입력에서의 EOF 처리, hasNext()

테스트 케이스의 개수가 주어지지 않았다. -> EOF(End Of File)을 판별할 수 있어야한다. 이를 위해 Scanner의 hasNext() 메소드를 사용하였다. # hasNext public boolean hasNext() Returns true if this scanner has another token in its input. This method may block while waiting for input to scan. The scanner does not advance past any input. import java.util.Scanner; public class Main { public static void main(String[] args) { int A, B; Scanner sc ..

카테고리 없음 2020.07.12 starmk95

JAVA)10950번 A+B (3)

import java.util.Scanner; public class Main { public static void main(String[] args) { int cnt, A, B; Scanner sc = new Scanner(System.in); cnt = sc.nextInt(); for (int i = 0;i < cnt;i++) { A = sc.nextInt(); B = sc.nextInt(); System.out.println(A + B); } } }

알고리즘/백준 알고리즘(JAVA) 2020.07.12 starmk95

JAVA)1000번 A+B (Scanner와 BufferedReader/Writer)

import java.util.Scanner; public class Main { public static void main(String[] args) { int A, B; Scanner sc = new Scanner(System.in); System.out.print("A : "); A = sc.nextInt(); System.out.print("B : "); B = sc.nextInt(); System.out.print("A + B = " + (A+B)); } } 입력은 Scanner, 출력은 System.out을 사용한다. cf) 입력이 많은 경우에는 BufferedReader 사용 (성능 개선을 위함) 출력이 많은 경우에는 BufferedWriter 사용 또는 StringBuilder를 통해 한 ..

알고리즘/백준 알고리즘(JAVA) 2020.07.12 starmk95

main 함수에 파라미터(매개 변수) 전달하여 실행하기

main() 함수에는 기본적으로 가시적으로 표기되지 않아도 argc와 argv 파라미터들이 존재한다. 이를 특정 값으로 지정하여 main 함수를 실행시키기 위해서는 몇 가지 방법들이 있다. cmd을 이용해서 실행파일(.exe) 실행하기 cmd를 사용하여 해당 프로젝트의 실행파일이 있는 위치로 가서 해당 실행파일을 실행하는데, 별다른 파라미터 없이 실행시킬 경우, C:\Users\User>파일이름.exe 이렇게 실행한다면 파라미터를 넣어서 실행하고 싶을 때는, C:\Users\User>파일이름.exe 인자1 인자2 인자3 이런식으로 뒤에 띄어쓰기 후에 넣고 싶은 파라미터를 기입해 주는 것으로 실행시켜준다. 해당 예시의 경우에는 argv 문자열에 0번째 원소로는 실행파일, 1번째는 인자1, 2번째는 인자2,..

카테고리 없음 2020.04.14 starmk95

cmd(명령 프롬프트) 사용하기 _ 명령어

cmd의 실행 1. 윈도우 + R 키 -> 실행창 생성 2. cmd 입력 후 엔터 3. cmd 실행됨 명령어 모음 보기 cmd를 실행한 후 "help"를 치면 cmd에서 사용할 수 있는 명령들의 모음을 볼 수 있다 특정 명령어를 입력한 다음 뒤에 /?를 붙여주면 해당 명령어의 기능에 대한 추가 설명을 볼 수 있다. 몇 명령어들을 정상적으로 수행하기 위해서는 관리자 권한이 필요할 수도 있다. (cmd를 관리자 권한으로 실행해주면 됨) 주요 cmd 명령어들 (사용 빈도 높은 명령어들) (각 명령어들의 자세한 사용법은 /?로 확인 가능) dir : 현재 디렉토리의 파일들과 하위 디렉터리들의 목록을 보여줌 cd : 현재 디렉토리 이름을 보여주거나 바꿈 (디렉토리 이동) ex) cd C:\Users\User\임의..

카테고리 없음 2020.04.14 starmk95
Android Studio (모바일 프로그래밍) 2020.07.13 댓글 개 starmk95

개념정리) 4장 이벤트 처리

Android Studio (모바일 프로그래밍) 2020.07.13 댓글 개 starmk95

개념정리) 3장 사용자 인터페이스 기초

Android Studio (모바일 프로그래밍) 2020.07.13 댓글 개 starmk95

개념정리) 2장 App 기본 구조

Android Studio (모바일 프로그래밍) 2020.07.13 댓글 개 starmk95

개념정리) 1장 안드로이드

알고리즘/백준 알고리즘(JAVA) 2020.07.13 댓글 개 starmk95

JAVA)10828번 스택 구현하기(ArrayList 사용)

import java.util.ArrayList;
import java.util.Scanner;

class MyStack {
    ArrayList<Integer> stackArray;
    int size;

    public MyStack() {
        stackArray = new ArrayList<Integer>();
        size = 0;
    }

    public void push(int num) {
        stackArray.add(num);
        size++;
    }

    public int pop() {
        if (size > 0) {
            int top = stackArray.get(size - 1);
            stackArray.remove(size - 1);
            size--;
            return top;
        } else {
            return -1;
        }
    }

    public int size() {
        return size;
    }

    public int empty(){
        if (size < 1) {
            return 1;
        } else {
            return 0;
        }
    }

    public int top(){
        if (size > 0) {
            return stackArray.get(size - 1);
        } else {
            return -1;
        }
    }

}

public class Main {
    public static void main(String[] args) {
        int cnt;
        MyStack stack = new MyStack();
        Scanner sc = new Scanner(System.in);
        cnt = sc.nextInt();
        for(int i=0;i<cnt;i++) {
            String temp = sc.next();
            switch (temp) {
                case "push":
                    int newTop = sc.nextInt();
                    stack.push(newTop);
                    break;
                case "pop" :
                    System.out.println(stack.pop());
                    break;
                case "size" :
                    System.out.println(stack.size());
                    break;
                case "empty" :
                    System.out.println(stack.empty());
                    break;
                case "top" :
                    System.out.println(stack.top());
                    break;

            }
        }
    }
}
JAVA 2020.07.12 댓글 개 starmk95

JAVA) length, length(), size()의 사용법과 차이

3가지 모두 길이(크기)를 구하기 위해 사용된다.

각 메소드들은 무엇의 길이를 구하는가에 따라 다르게 사용된다.

 

length의 경우에는 배열의 길이를 구하는데 쓰인다.

ex) Int[] intArray = new int[5];

     int temp = intArray.length; -> temp = 5

 

length()의 경우에는 문자열(String)의 길이를 구하는데 쓰인다.

ex) String word = "abcdefgh"

     int temp = word.length(); -> temp = 8

 

size()의 경우에는 Collection 타입 오브젝트의 길이를 구하는데 쓰인다. ex) Arraylist 객체의 길이

ex) ArrayList<String> stringArray = new ArrayList<String>();

     int temp = stringArray.size(); -> temp = 0 (배열이 비어있기 때문)

카테고리 없음 2020.07.12 댓글 개 starmk95

JAVA)10953번 A+B(6), 문자열 슬라이싱(split, substring 메소드), 문자열 정수로 변환하기(parseInt 메소드)

1,2 형식으로 들어오는 2개의 정수를 받기 위해서는 

입력 문자열에서 ,를 기준으로 나누어줘야한다.

이것을 위해 String의 split 메소드를 사용했다.

 

문자열.split("슬라이스할기준문자") 형식으로 사용한다.

String[] array = "abcdef".split("c");

위 코드 실행 결과로 array[0] = "ab", array[1] = "def"가 생성된다.

 

cf) String의 substring 메소드는 인덱스를 기준으로 슬라이싱하는 메소드이다.

    문자열.substring(시작인덱스, 끝인덱스) 형식으로 사용

    (시작인덱스는 포함, 끝 인덱스는 포함하지 않고(전까지) 슬라이싱한다.

    ex) "abcdefg".substring(2) -> "cdefg" (인덱스 하나만 들어갈 경우, 시작 인덱스로 입력됨)

         "abcdefg".substring(3, 5) -> "de" (인덱스 3부터 인덱스 5 전까지를 슬라이스 해옴)

 

split을 통해 가져온 A, B 값은 String형이다. 문제에서 요구하는 덧셈을 수행하기 위해서는

A, B를 정수형으로 변환해주어야한다. 

여기서 사용할 수 있는 두가지 메소드가 Integer.parseInt()와 Integer.valueOf() 메소드이다.

ex) Integer.parseInt("12") -> 정수 12 반환

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int cnt, A, B;
        String temp;
        Scanner sc = new Scanner(System.in);
        cnt = sc.nextInt();
        for(int i=0;i<cnt;i++) {
            temp = sc.next();
            String[] nums = temp.split(",");
            A = Integer.parseInt(nums[0]);
            B = Integer.parseInt(nums[1]);
            System.out.println(A + B);
        }
    }
}

 

#) 위 코드에서 

temp = sc.next(); 대신 temp = sc.nextLine();을 입력하게되면 

테스트 개수의 입력 후 들어가는 개행(enter)를 입력으로 받아와서 

런타임 에러가 발생하게 된다. (A,B꼴의 문자열이 아닌 \n을 입력으로 받아옴)

 

next()는 띄어쓰기를 기준으로(단어) 입력을 받아오지만

nextLine()은 개행을 기준으로 한 줄 한 줄 입력을 받아온다.

카테고리 없음 2020.07.12 댓글 개 starmk95

JAVA)10951번 A+B (4) , 입력에서의 EOF 처리, hasNext()

테스트 케이스의 개수가 주어지지 않았다. -> EOF(End Of File)을 판별할 수 있어야한다.

이를 위해 Scanner의 hasNext() 메소드를 사용하였다.

 

 

# hasNext
public boolean hasNext()

Returns true if this scanner has another token in its input. This method may block while waiting for input to scan. The scanner does not advance past any input.

<JavaDoc>

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int A, B;
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()) {
            A = sc.nextInt();
            B = sc.nextInt();
            System.out.println(A + B);
        }
    }
}

 

다음 태스크의 입력이 들어온다면 hasNextInt()가 true 반환

그렇지 않으면 false 반환하고 while문 종료

 

 

 

알고리즘/백준 알고리즘(JAVA) 2020.07.12 댓글 개 starmk95

JAVA)10950번 A+B (3)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int cnt, A, B;
        Scanner sc = new Scanner(System.in);
        cnt = sc.nextInt();
        for (int i = 0;i < cnt;i++) {
            A = sc.nextInt();
            B = sc.nextInt();
            System.out.println(A + B);
        }
    }
}

 

알고리즘/백준 알고리즘(JAVA) 2020.07.12 댓글 개 starmk95

JAVA)1000번 A+B (Scanner와 BufferedReader/Writer)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int A, B;
        Scanner sc = new Scanner(System.in);
        System.out.print("A : ");
        A = sc.nextInt();
        System.out.print("B : ");
        B = sc.nextInt();
        System.out.print("A + B = " + (A+B));
    }
}

입력은 Scanner, 출력은 System.out을 사용한다.

 

cf) 입력이 많은 경우에는 BufferedReader 사용 (성능 개선을 위함)

    출력이 많은 경우에는 BufferedWriter 사용 또는 StringBuilder를 통해 한 문자열로 만들어서 한번에 출력

    bufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

카테고리 없음 2020.04.14 댓글 개 starmk95

main 함수에 파라미터(매개 변수) 전달하여 실행하기

main() 함수에는 기본적으로 가시적으로 표기되지 않아도

argcargv 파라미터들이 존재한다.

이를 특정 값으로 지정하여 main 함수를 실행시키기 위해서는 몇 가지 방법들이 있다.

 

  • cmd을 이용해서 실행파일(.exe) 실행하기

cmd를 사용하여 해당 프로젝트의 실행파일이 있는 위치로 가서 해당 실행파일을 실행하는데,

별다른 파라미터 없이 실행시킬 경우, C:\Users\User>파일이름.exe

이렇게 실행한다면 

파라미터를 넣어서 실행하고 싶을 때는, C:\Users\User>파일이름.exe 인자1 인자2 인자3

이런식으로 뒤에 띄어쓰기 후에 넣고 싶은 파라미터를 기입해 주는 것으로 실행시켜준다.

해당 예시의 경우에는 argv 문자열에 0번째 원소로는 실행파일, 1번째는 인자1, 2번째는 인자2, 3번째는 인자3이 들어가게 된다. argc 값은 argv의 원소들의 개수이므로 4가 된다. 

 

ex) C:\Users\User>examplefile.exe first 1 2 hello last_element

 

  • 비주얼 스튜디오에서 실행하기

비주얼 스튜디오에서 main 함수의 파라미터를 제공하며 실행시키기 위해서는

해당 프로젝트 설정에서 적용시켜주어야한다.

 

상단 메뉴바 -> 프로젝트 -> ...(프로젝트 이름) 속성 -> 속성 페이지의 디버깅 메뉴 -> "명령 인수" 항목의 값 설정

 

명령 인수 항목에 설정한 값들이 main 함수의 파라미터로 들어가며 실행되게 된다.

 

상단 메뉴바 -> 프로젝트 -> ...(프로젝트 이름) 속성

속성 페이지의 디버깅 메뉴 -> "명령 인수" 항목의 값 설정

 

위 예시에서는 argc 값은 8, argv 문자열의 0번째 파라미터는 해당 프로젝트 실행을 위한 함수, 1번째는 인자1, 2번째는 hi, ... 마지막 파라미터는 last_element가 들어간다.

카테고리 없음 2020.04.14 댓글 개 starmk95

cmd(명령 프롬프트) 사용하기 _ 명령어

  • cmd의 실행

1. 윈도우 + R 키 -> 실행창 생성

2. cmd 입력 후 엔터

3. cmd 실행됨

 

  • 명령어 모음 보기

cmd를 실행한 후 "help"를 치면 cmd에서 사용할 수 있는 명령들의 모음을 볼 수 있다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

특정 명령어를 입력한 다음 뒤에 /?를 붙여주면

해당 명령어의 기능에 대한 추가 설명을 볼 수 있다. 

몇 명령어들을 정상적으로 수행하기 위해서는 관리자 권한이 필요할 수도 있다.

(cmd를 관리자 권한으로 실행해주면 됨)

 

 

  • 주요 cmd 명령어들 (사용 빈도 높은 명령어들) (각 명령어들의 자세한 사용법은 /?로 확인 가능)

dir : 현재 디렉토리의 파일들과 하위 디렉터리들의 목록을 보여줌

cd : 현재 디렉토리 이름을 보여주거나 바꿈 (디렉토리 이동)

       ex) cd C:\Users\User\임의경로\경로2

       ex2) cd ..   ->  상위 폴더로 이동

copy : 하나 이상의 파일을 다른 위치로 복사해줌

cls : 화면 지우기

date :  날짜를 보여주고나 설정함

exit : cmd 종료

help : cmd의 명령어들의 도움말 제공

mkdir : 디렉토리를 새로 만듬

rd 또는 rmdir : 디렉토리를 제거함

print : 텍스트 파일을 인쇄함

ren 또는 rename : 파일 이름을 바꿈

pushd : 현재 디렉토리를 저장한 다음 변경함

find : 파일에서 텍스트 문자열을 검색함

del : 하나 이상의 파일을 삭제

time : 시스템 시간을 보여주거나 설정함

type : 텍스트 파일의 내용을 보여줌

ver : windows의 버전을 보여줌

attrib : 파일 특성을 화면에 표시하거나 변경함

ipconfig : 해당 단말의 ip 주소 확인에 쓰임 (간단한 네트워크 설정도 가능)

ping : 네트워크 상태 확인

java -version :  자바 버전 확인