
두 정수 A와 B를 입력받은 다음 A+B를 출력하는 프로그램을 작성하시오.첫째 줄에 A와 B가 주어진다 (0 < A , B < 10) 첫째 줄에 A+B 를 출력한다 Scanner 클래스를 import 해준다.Scanner 패키지는 java.util 패키지에

10172번: 개자바 에서는 몇몇 문자는 단독으로 써서 출력할 수 없다. (대표적으로 백슬래시와 큰 따옴표가 있다.)그래서 문자를 출력하기 위해 조합을 만들어서 출력할 수 있도록 하는데 이를 Escape Sequance 라고 한다. 이스케이프 시퀀스는 백슬래시() +

2588번: 곱셈Scanner와 System.out.print() 는 자바를 배울 때 제일 먼저 배우고 가장 흔하게 사용하는 방법이다 . 하지만 둘 다 속도 면에서 매우 느린 편에 속한다 리소스를 많이 사용하여 성능 부하를 초래하기 때문이다.Scanner의 경우 최적화

문제 11382번: 꼬마 정민매우 간단한 사칙 연산 문제와 크게 다를 것이 없다 다만 , 주의 해야 할 점은 1<=A, B, C <= 10^12 의 값이 들어 온다는 점을 인지하고 int 형이 아닌 long 형으로 만들어 줘야 함

2884번: 알람 시계\*주의할 점24시간 표현을 사용한다입력은 공백 한 칸을 기준으로 구분되어 입력된다.출력시 불필요한 0은 사용하지 않는다.알고리즘 접근 방법가장 쉬운 알고리즘으로는 입력받은 분 을 45 기준으로 45보다 작으면 hour 을 -1 해주고 아닐 경우

2753번: 윤년문제에서 윤년이 될 조건은 두가지이다.4의 배수이면서 100의 배수가 아닌 숫자 (두 가지 조건을 동시에 만족해야 하므로 &&를 사용한다400의 배수인 숫자

14681번: 사분면 고르기예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작

2525번: 오븐 시계

25083번: 새싹“와 같이 문법적 기능들을 담는 단어들은 그대로 출력을 할 수가 없기 때문에 이러한 문자를 출력하고 싶을 경우에는 규칙이 있다\\ (백슬래시)를 붙여 사용하면 된다. 큰 따옴표나 작은 따옴표 같은 문법적 기능을 담당하는 문자들은 (백슬래시와 결합하게

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰본문에 나와 있듯이 각 체스말들의 개수는 고정되어있고, 입력으로는 현재 갖고 있는 말의 개수를 입력받는다그래서 실제 필요한 체스말의 개수를 맞추어 그 차를 구하면 되는 것각, 체스말의 변수를 선언하여 초기 값으로 원래 정상

10988번: 팰린드롬인지 확인하기문자열을 입력받아 해당 문자열이 회문인지 아닌지를 판별하는 것.회문이란 앞으로 읽으나 뒤로 읽으나 동일한 문자열을 말함Scanner 로 사용자로 부터 입력을 받기 위해 객체 sc 를 생성하고 표준입력 에서 데이터를 읽어옴. 사용자로 부

1157번: 단어 공부모든 알파벳이 출력 될 때는 대문자로 출력된다가장 많이 반복된 문자가 2개 이상일 경우 ‘?’ 을 출력함먼저 알파벳 26글자를 입력받기에 앞서 각 문자들의 빈도수를 나타내기 위한 배열을 하나 선언하고 문자열 s를 입력받음문자열 s에 대하여 0부터

10809번: 알파벳 찾기입력으로 주어지는 문자열은 모두 소문자임.a~z를 모두 출력하여 주어진 문자열에 대해 해당 문자가 처음으로 나오는 위치를 출력한다위치는 0부터 시작사이즈가 26인 int형 배열을 생성하여 모두 -1로 초기화 시킴.S로 문자열을 입력받음charA

2941번: 크로아티아 알파벳크로아티아 알파벳의 개수를 세어야 함배열로 풀 때 참조하려는 인덱스가 벗어나지 않는지 유의해야 함위 8개의 문자는 특정 조건에 의해 변경되어 하나의 문자를 이루게 됨String 문자열을 입력받고 알파벳 숫자를 카운트 할 변수 선언 및 초기화

2738번: 행렬 덧셈A, B 각각 2차원 배열을 선언해서 값을 넣는다두 2차원 배열의 행렬 크기는 동일함하나의 행을 열 (M) 값 만큼 반복하면서 원소 값을 넣어주고 다시 이중 반복문으로 동일한 행열 값을 갖는 다른 2차원 배열의 값을 result에 저장 result

1316번: 그룹 단어 체커입력은 소문자로 한정되어 있음.각 문자가 그룹 단어 조건을 충족해야 함한번도 중복되지 않은 문자이거나, 중복된다면 직전 문자와 동일해야 하는 조건을 가져야 함Scanner를 이용하는 방법을 사용함 그룹 단어의 개수를 입력하기 위해 변수 N을

2566번: 최댓값이상하리 만큼 쉽게 느껴진 문제였다. 행렬의 크기도 정해져 있고 모든 인덱스를 비교해가며 최댓 값을 찾고 해당 하는 위치를 출력하면 되는 것.for문은 0부터 시작하기 때문에 출력할 때 + 1 을 해주었다.목표인 골드 티어 문제를 술술 풀어 내는 내

10798번: 세로읽기이 또한 조건을 빠르게 찾는 것에 집중했다 2차원 배열을 생성하고 , 그 제한은 5행 15열 인 것입력한 문자열을 단어 하나 하나 씩 2차원 배열 index에 저장할 것이기 때문에 char 형태로 2차원 배열을 생성하였다.for 문을 5번 반복하면

2720번: 세탁소 사장 동혁그리디 알고리즘 개념을 이용한 최소 동전 개수를 구하는 문제이다어렵지 않게 느껴져서 처음에 코드를 작성했는데 while문을 빠져나간 뒤에 동전 개수를 초기화 시켜 주지 않는 실수를 범했었다코드의 길이를 줄이고 싶어서 다른 사람들의 코드를 살

2750번 : 수 정렬하기N개의 수가 주어졌을 때 , 이를 오름차순으로 정렬하는 매우 매우 간단한 문제..입력을 받으면서 계속해서 비교해가면서 정렬하는 방법도 있지만 Array.sort 메소드를 이용하여 간단하게 해결하였다Arrays.sort()는 자바에서 기본으로 제

2587번 : 대표값2입력의 개수가 정해져있어서 매우 쉽게 느껴졌음. 5개의 수를 입력받고 평균값과 대표값을 찾으면 됨.평균 같은 경우는 모두 더한 다음 나누기를 해주었고 오름차순으로 정렬 후, 3번째 원소가 대표값.

25305번 : 커트라인N명의 학생이 응시한 시험에서 가장 점수가 높은 K 명이 상을 받을 수 있고, 상을 받는 커트라인이 몇 점인지 구하는 문제arr을 Integer 형태로 선언하는 이유는 배열의 요소를 내림차순으로 정렬할 때, 기본 데이터 타입인 'int'를 사용하

2751번 : 수 정렬하기2N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 문제이다 java 기준으로 Array.sort메소드를 사용하면 시간초과가 날 가능성이 높음.Array.sort 의 경우 dual-pivot Quicksort 알고리즘을 사용하기 때문에 최악

10989번 : 수 정렬하기 3\_!!주의할 점 1\. Java의 시간제한은 3초임, 메모리 제한은 512MB가장 기본적인 방법을 이용함.먼저 배열의 모든 원소를 입력받고, Arrays 패키지에 있는 sort()메서드를 사용하여 오름차순으로 정렬. StringBuil

1427번 : 소트인사이드BufferedReader 를 사용하여 데이터를 읽을 수 있는 br 객체를 생성.br.readLine().toCharArray()를 사용하여 한 줄의 문자열을 읽어와서 char 배열(arr)로 변환 배열에 각 문자가 저장됨.Arrays.sort

2864번 : 5와 6의 차이상근이는 5와 6을 헷갈림.5를 6으로 볼때도 있고 6으로 볼 때도 있음 기본적으로 두 개의 두 자릿수의 합을 구하 되, 숫자에 5또는 6이 포함 될 경우 5가 6이 된 경우의 수의 합 , 6이 5가 된 경우의 수의 합 중 최솟값과 최댓 값

1159번 : 농구 경기간단하게 생각하면 문자열의 첫 글자가 5번이상 반복되는 알파벳을 찾는 것 알파벳을 저장할 인덱스 생성맨 앞자리만 char 자료형에 입력 받아서 해당하는 인덱스를 증가 시킴배열 alpha의 인덱스를 돌면서 인덱스의 값이 5이상인 경우 해당 알파벳을

2577번 : 숫자의 개수알고리즘 방식은 다음과 같다 먼저 0부터 9까지 count를 체크할 길이 10의 int 배열을 생성하고 변수 val 에 읽은 값을 곱해서 저장 . 세 정수의 곱의 합을 추출하기 위해서 String str 에다가 val의 int 형을 String

8958번 : OX퀴즈먼저 String 배열을 생성함과 동시에 입력받은 숫자를 배열의 크기로 지정.배열의 크기만큼 for문을 반복하며 배열에 인덱스에 "OXOXOOO...."과 같은 문자열을 저장for문을 배열의 크기만큼 반복하면서 i번째 인덱스에 있는 문자열을 검사a
2581번 : 소수사용자가 M 과 N 을 입력하고 M ~ N 사이에 수 중 소수를 구분하고 소수들의 총합과 최솟값을 구하는 문제
1978번 : 소수찾기 문제처음에 boolean 변수를 반복문 밖에 선언하는 실수를 했었다. 문제 자체는 어렵지 않았다. 더 많이 실수하고 더 많이 배우자
9506번 : 약수들의 합
24262번 : 알고리즘 수업 - 수행시간 1문제 이 코드는 딱 한번 실행된다 반복문이 없고 바로 반환함즉, 어떤 수가 들어와도 무조건 1번 수행됨.둘째 줄에 코드1의 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 단, 다항식으로 나타낼 수 없거나
24263번 : 알고리즘 수업 2 - 수행시간 2코드는 입력받은 n을 받아 1부터 n 까지 반복함 즉 , 입력받은 n의 수만큼 반복횟수가 늘어나므로 O(n) 만큼의 시간복잡도를 가진다는 것을 알 수 있음
24264번 : 알고리즘 수업 - 알고리즘의 수행 시간 3기존 문제와 똑같다 for문안에 for문이 존재함 즉 , 수행시간은 n^2 이고, 최고 차수는 2가 됨.시간 복잡도 : O(n^2)첫째 줄에 입력의 크기 첫째 줄에 입력의 크기 n(1 ≤ n ≤ 500,000)이
알고리즘 수업 - 알고리즘의 수행 시간 4n이 7이라고 가정할 때 첫 번째 for 문은 1부터 6까지 반복함.두 번째 for 문에서는 i가 1일 경우 j는 2부터 7까지 6번,2일 경우 j는 3부터 7까지 5번....이런식으로 1부터 n-1까지의 합이 됨.가우스의 덧셈
24266번 : 알고리즘 수업 - 알고리즘 수업시간 5이 문제의 수행시간은 O(n^3) 이고 최고차수는 당연히 3이다.반복문이 3중으로 반복됨.
1181번 : 단어 정렬단어를 길이순으로 정렬한 뒤, 길이가 같을 경우 사전순으로 정렬 (알파벳순)중복되는 단어가 있을 경우 한 번만 출력함 배열을 특정한 규칙에 의해 정렬하고 싶은 경우 Arrays.sort 메소드에 Comparator 을 구현하면 됨.Arrays.s
2941번 : 크로아티아 알파벳크로아티아 알파벳의 개수를 세어야 함배열로 풀 때 참조하려는 인덱스가 벗어나지 않는지 유의해야 함.위 8개의 문자는 특정 조건에 의해 변경되어 하나의 문자를 이루게 됨조건을 검사하다가 문제가 발생하였다.if(str(10+1) 즉 , 이
1316번 : 그룹 단어 체커입력은 소문자로 한정되어 있음각 문자가 그룹 단어 조건을 충족해야 함 한번도 중복되지 않은 문자이거나, 중복된다면 직전 문자와 동일해야 하는 조건을 가져야 함Scanner 를 이용하는 방법을 사용함 그룹 단어의 개수를 입력하기 위해 변수 N
10814번 : 나이순 정렬N 값이 2일때 두 객체를 비교할 때 사용되는 인터페이스인 'Comparator' 를 구현하여 사용자 정의 정렬 방식을 이용함 나이를 기준으로 정렬하기 때문에 o1이 o2보다 작으면 음수를 반환 (위치 바뀜 -> 정렬)o1이 o2와 같으면 0
11650번 : 좌표 정렬하기우선 N 의 크기를 갖는 2차원 배열이 있고 두 좌표를 모두 입력받았을 때, arri 와 arri 을 입력하고 i를 증가해 갈 것임.arri 와 arri+1 을 정렬할 것이고 만약 두 값이 같다면 arri 과 arri+1 을 비교해주면 됨A
7785번 : 회사에 있는 사람 알고리즘 HashMap key 값에 name 을 넣고 만약에 key 값이 한 번더 입력된다면 해당 name 을 HashMap 에서 제거하였음. state 값으로 비교할 필요가 없음. ArrayList 에
14425번 : 문자열 집합이 문제는 n개의 문자열이 주어지고 그 다음에 m 개의 문자열을 입력한다 그 중에서 몇개의 문자열이 n개의 문자열과 겹치는 지 그 수를 출력해주는 것임HashMap 을 이용해서 품.<String,Integer> 형태인 HashMap 을
1764번 : 듣보잡이 문제는 HashMap을 이용해서 푼다. Key 값은 String ,Value 값은 Integer로 하였다.key는 당연히 이름이고 Value로는 이 사람이 Map에 들어간 횟수를 카운트 할 것 Value 값을 기준으로 '듣보잡'을 출력이 문제에서
1269번 : 대칭 차집합집합 A와 집합 B의 원소를 각각의 HashSet에 넣는다.집합 A에 있는 원소가 집합 B에 없다면 answer ++ 반대도 마찬가지..HashSet 을 사용하여 집합을 표현 , (중복된 값을 허용하지 않고 순서를 보장하지 않는 자료구조임)st
10816번 : 숫자 카드2HashMap 을 사용해서 각 숫자 카드의 개수를 저장할 준비첫 번째로 숫자 카드의 개수를 입력받음 = N공백을 기준으로 숫자들 분리각 숫자를 읽어 들이면서 map에 해당 숫자가 있는지 확인, map.put(key, map.getOrDefau
1620번 나는야 포켓몬 마스터 이다솜N은 포켓몬의 수이고 M은 조회할 횟수임HashMap을 초기화 함 map은 인덱스 번호를 기반으로 포켓몬 이름을 저장한다.포켓몬의 수 N만큼 반복하면서 입력된 정보를 HashMap에 저장조회횟수(M)만큼 반복하면서 각각의 조회에 대
28278번 : 스택2매번 느끼는건데 백준 문제는 쉬운 문제를 어렵게 설명한다.. 명령을 입력할 횟수 (N)을 입력한다.N번만큼 명령을 입력할 수 있는데 명령의 개수는 1~5번까지 존재함.해당 코드는 자료 구조로서의 스택을 구현하기 위해 LinkedList를 사용하는
10773번 : 제로입력횟수인 K를 입력한다. K만큼 숫자를 입력 할 기회가 주어지고 입력된 숫자는 stack에 저장됨.사용자가 '0' 을 입력할 경우 스택에서 가장 최근에 삽입된 원소를 제거한다.마지막엔 스택에 있는 모든 원소의 합을 계산하여준다.top 을 -1로 초
백준 9012번 : 괄호문제를 해석해보면 여는 괄호 '(' 가 있으면 반드시 ')'로 짝이 맞아야 VPS 조건이 된다는 것임여는 괄호가 있을 때는 스택에 쌓고 닫는 괄호가 나오면 여는 괄호를 하나 pop 하여 0으로 만들어야 함모든 과정이 끝났을 때 stack이 비어있
4949번 : 균형잡힌 세상첫 번째로 '괄호 문자' 인지를 판단해야 하고 이후 '여는 괄호' 인지 '닫는 괄호' 인지를 판단하며 , 닫는 괄호일 경우 ']' 은 '\['와 매칭되어야 하고 ')'의 경우는 '(' 과 매칭되어야 한다그리고 괄호가 아닌 문자의 경우 그냥 넘
18258번 : 큐2 알고리즘 큐 라이브러리를 사용할 경우 Java에서는 가장 맨 뒤에 있는 요소를 반환하는 메소드가 없음 LinkedList 방식을 이용하여 구현할 것임 StringTokenizer는 엔터를 입력할 경우 종료되기 때문에 while 루프를 반복할
2164번 : 카드2문제를 풀이하는 방법은 맨 앞의 수를 삭제하고(poll) , 그 다음 앞의 수를 삭제한 뒤, 삭제한 수를 맨 뒤에 삽입(offer) 하면 된다offer() 메서드는 큐의 맨 뒤에 데이터를 삽입하는 것이다.
백준 11866번 : 요세푸스 문제01부터 N 까지 나열 된 수에서 K번째 수 마다 차례대로 뽑아 낸 수열의 모음을 출력하는 것 1부터 n 까지 나열 된 수가 있다 {1,2,3,4,5,6,7} -> {1,2,3,4,5,6,7} = 3출력 그 다음 3의 위치에서 K번째

28279번 : 덱2이전에 풀었던 큐 2 문제와 똑같다. 덱의 특성을 이용하여 쉽게 풀 수 있었음
백준 7568번 : 덩치이 문제에서 덩치가 크다의 기준은 키와 몸무게 모두 상대방보다 클 때를 말한다.or 아니라 and 인것.당연히 키와 몸무게를 담는 2차원 배열을 생성한 뒤, 이중 반복문을 이용하여 각 배열의 인덱스를 모두 탐색하는 방법이다.rank = 1 부터
백준 11399번 : ATM처음엔 매우 쉽다고 느껴져서 문제를 바로 풀기 시작했다.ArraysSort 를 이용해서 간단하게 풀었고 시간의 합을 구하는 방법을 여러가지 방법으로 구현해봤다.하지만 이 문제는 CountingSort 알고리즘을 이용하여 해결할수도 있다.Cou
1920번 : 수 찾기처음에는 이중 반복문을 이용해서 푸는 바람에 시간초과가 발생했음.다른 방법을 찾아보다가 이분탐색을 사용하게 됨.이분 탐색은 쉽게 말하자면 두 부분으로 쪼개면서 탐색하겠다는 것이다.1부터 n 까지의 수를 전부 탐색하는 것이 아니라 mid (중간 값)
백준 5430번 :AC처음엔 숫자 원소를 덱에 넣고 D연산을 할 때마다 통째로 뒤집는 방법을 생각했다가 실패했다.Deque를 활용하고자 했다 -> 양방향에서 접근이 가능하니깐..pollFirst() or pollLast()boolean 자료형을 잘 안쓰는 버릇이 있다보
백준 5430번 :AC처음엔 숫자 원소를 덱에 넣고 D연산을 할 때마다 통째로 뒤집는 방법을 생각했다가 실패했다.Deque를 활용하고자 했다 -> 양방향에서 접근이 가능하니깐..pollFirst() or pollLast()boolean 자료형을 잘 안쓰는 버릇이 있다보
백준 1927번 : 최소 힙백준 11279번 : 최대 힙설명은 주석 참조
백준 11286번 절댓값 힙 힙을 구현하되, 절댓값을 기준으로 오름차순 정렬, 절댓값이 동일하다면 실젯 값을 비교하는 과정 Math.abs()메서드를 사용하여 절댓값 비교함Comparator 사용자 정의 정렬 규칙 생성
백준 11659 : 구간 합 구하기4첫 번째 값은 0으로 초기화를 한다. 1부터 시작해서 i-1 + nextToken()을 해줘야 하기 때문에배열 자체에 애초부터 구간의 합을 저장해야 시간초과가 되지 않음.

백준 7662번 : 이중 우선순위 큐 TreeMap을 이용해서 구현하였다. TreeMap은 이진탐색 트리의 문제점을 보완한 레드-블랙 트리로 이루어져 있음 일반적인 이진 탐색 트리는 트리의 높이만큼 시간이 필요함. 하지만 값이 전체 트리에 잘 분산되어 있는 트리라
백준 2493번 : 탑탑의 개수 N과 각 탑의 높이를 입력받는다. 스택 초기화 스택에는 각 탑의 번호와 높이를 저장한다.스택이 비어있으면 0을 출력하고, i와 top을 stack 저장스택이 비어있지 않다면, 스택 맨 위의 값이랑 top을 비교후 맨 위 값이 더 크다면
백준 1654번 : 랜선 자르기영식이가 가지고 있는 K개의 랜선들을 잘라서 N개의 랜선을 만들 것인데, N개를 만들 수 있는 랜선의 최대 길이를 구하는 문제이 문제를 해결하기 위해선 크게 두 가지 개념에 대한 이해그 필요하다1\. Upper Bound 개념2\. 이진
오랜만에 백준 문제.. 머리가 잘 안돌아가서 쉬운 문제를 풀어봤음. 백준 11725번 : 트리의 부모 찾기
13549번 : 숨바꼭질3문제는 주어진 시작 위치 n 에서 동생의 위치 k 까지 이동하는 데 필요한 최소 시간을 계산하는 것이다.수빈이는 최대 100,000 까지의 위치로 이동할 수 있다. 이 문제를 해결하기 위해 BFS(너비 우선 탐색) 알고리즘을 사용했다. BFS는