본문 바로가기

분류 전체보기

(111)
[Java] 백준 10798번 : 세로읽기 ver.2 1. 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 2. 풀이 - 이 문제는 앞 전에 char 형태의 배열을 활용하여 풀었던 문제이다. 친구가 int 형 배열로 바꾸어 구현해보라고 하여 다시 풀어본다. char 형태 배열은 초기값이 '\0'으로 정해져 있지만 int 는 초기값이 0이다. 허나 예제 입력에 0이 입력될 수 있기 때문에 Arrays.fill 메소드를 사용하여 배열에 전부 10이란 값을 초기값으로 지정해주었다. char..
[Java] 백준 10804번 : 카드 역배치 1. 문제 https://www.acmicpc.net/problem/10804 10804번: 카드 역배치 1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다. www.acmicpc.net 2. 풀이 문제에 카드 20장이라고 정해주었으므로 20칸을 가진 int형 배열을 만든다. 2개씩 10개의 입력이 주어진다. (인덱스와 맞추기 위해서 -1) 변수를 하나 만들어 주고 입력값을 서로 빼준다. (start변수가 end변수보다 숫자가 작으면 마이너스 숫자가 나올 수 있어 Math.abs() 음수를 양수로 바꾸어 주는 메소드를 활용하고, 나온 숫자만큼 자리 바꿔주기 위하여 나누기 2를 해주는게 핵심이다. 3. 코..
[Java] 백준 10798번 : 세로읽기 1. 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 2. 풀이 char타입의 세로 5줄, 가로 15줄의 2차원 배열을 만든다. (char 타입의 2차원 배열의 초기값은 '\0'이다. 문자열을 5번 입력받는다. 입력받은 문자열을 j만큼 한 문자씩 쪼개어 순서대로 넣어준다. 출력을 위해 for 문을 반대로 15만큼 반복하게 만든다. 출력을 할 조건에 인덱스 내부가 공백 또는 null 문자 일 경우 continue로 계속 반복한다. 3..
[Java] 백준 1316번 : 그룹 단어 체커 1. 문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 2. 풀이 - 문제 핵심은 입력에 주어진 문자가 연속적으로 들어오는지 확인 이전에 들어왔던 문자가 같은지가 핵심이다. - boolean 배열을 활용하여 풀이 테스트 케이스가 주어지고 for문 안에 문자열을 입력한다. 각 문자열 마다 확인을 해주어야 함으로써 배열 초기화를 위하여 boolean 변수를 담은 배열을 for문 안에 생성한다. (알파벳 개수에 비..
[Java] 백준 1159번 : 농구 경기 1. 문제 https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 2. 풀이 소문자 알파벳 비교를 하기 위하여 26칸(알파벳 개수)을 가지고 있는 배열을 생성한다. 테스터 케이스 입력 하고 각 입력 앞에 성 가져오기 위한 for문을 생성하고 안에 ch라는 변수에 charAt(0) - 97을 하여 하나씩 쪼개어 변수에 담아준다. (아스키코드표 소문자 a = 97, 소문자 기준으로 빼면 앞에 알파벳이 무엇인지 알 수 있기 위함이다.) ch변수에 담은 값을 인덱스..
[Java] 백준 9093번 : 단어 뒤집기 1. 문제 2. 풀이 nextInt()로 테스트 케이스 입력값을 주고 입력을 하게 되면 nextInt()는 띄어쓰기를 기준으로 입력값을 받고, 개행 문자인 \n이 그대로 남아있어서 다음 nextLine() 쓰면 nextLine()이 한 줄이 씹히게 된다. 그것을 방지하고자 scanner.nextLine()을 형 변환하여 두 개로 인식하게 정수로 바꾸어 저장해준 것이다. 테스트 케이스만큼 도는 포문을 만들고 포문 안에서 nextLine()으로 입력을 받는다. 입력받은 한줄을 단어마다 뒤집기 위해서 str.split(" ") 공백 기준으로 나누어 String배열에 담는다. forEach를 활용해서 한 단어 씩 넣어 대입하고 StringBuilder를 만들어서 그 안에 넣어준다. 두 번째 sb.Builder에..
[Java] toCharArray(), charAt() toCharArray() - toCharArray는 문자열을 한 글자씩 쪼개 char 타입의 배열에 집어넣어 반환해주는 메소드이다. - 단점으로는 배열을 생성하여 처리하기 때문에 처리속도가 느리다. charAt() - charAt() 메소드는 toCharArray() 메소드와 동일하게 문자열을 한 글자씩 쪼개 char타입으로 변환해준다. - charAt() 괄호 안은 index를 해당하며 한 글자씩 출력이 가능하고, toCharArray() 메소드에 비해 처리속도가 내부적으로 빨라 문자열을 나눌 때 charAt() 메소드를 주로 사용한다.
[Java] Checked Exception, Unchecked Exception 예외(Exception) - 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등, 정상적인 프로그램의 흐름을 어긋나는 것을 만하며, 상황을 미리 예측하여 핸들링할 수 있다. - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 에러(Error) - 시스템에 무엇인가 비정상적인 사황이 발생한 경우에 사용된다. - 프로그램 코드에 의해서 수습될 수 없는 심각한오류 (OutOfMemoryError, ThreadDeath, StackOverflowError) 등이 있다. 예외 구분 - Exception은 Checked Exception과 Unchecked Exception으로 구분할 수 있다. - RuntimeException을 상속하지 않은 클래스는 Checked Ex..