일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 공통원소 구하기
- GitHub #Commit #BaekJoon
- 보이는 학생
- java
- 자바
- 두 배열 합치기
- 가장 짧은 문자거리
- 모든행과열대각선의합
- ArrayList
- 큰 수 출력하기
- 뒤집은 소수
- 최대 길이
- 투 포인터
- 알고리즘
- 배열
- array
- 인프런
- 연속부분수열
- 10992
- 격자판
- 백준
- Two Pointer
- 10991
- Pointer
- 점수계산
- 등수구하기
- 아스키코드
- 코테준비
- 임시반장 정하기
- 누적 계산
- Today
- Total
목록전체 글 (154)
ezhoon

버블 정렬이란 두 개의 인접한 원소를 비교하여 정렬하는 방식입니다. 특징 데이터를 비교하면서 찾기 때문에 비교 정렬이며, 데이터 외의 추가적인 공간을 필요로 하지 않기 때문에 제자리 정렬이기도 합니다. 사용법 앞에서부터 현재 원소와 바로 다음의 원소를 비교 현재 원소가 다음 원소보다 크면 원소를 교환 다음 원소로 이동 한 뒤 해당 위치의 원소와 다음 원소를 비교 엔지니어 대한민국 - 버블 정렬 public int[] solution(int N, int[] arr) { for (int i = 1; i arr[j+1]) swap(arr, j, j + 1); } } return arr; } public vo..

📖 문제 첫 번째 줄에 자연수 N(1 index = j; * 5. swap 호출 (arr, index, j) * 6. arr[i] 의 값을 바꿔야 하므로 arr[i] 값을 temp에 임시 저장 * 7. arr[i] = arr[index], arr[index] = arr[temp] 서로 교환 * 8. return arr */ ✏️ 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public int[] solution(int N, int[] arr){ for (int i = 0; i < N ..

선택정렬이란 현재 위치에 들어갈 데이터를 찾아 선택하는 알고리즘입니다. 데이터를 비교하면서 찾기 때문에 비교 정렬이라고도 불립니다. 특징 O(n2) 사용법 배열에서 최솟값을 찾는다 최솟값을 맨 앞자리의 값과 교환한다. 나머지 값들 중 최솟값을 찾아 위 1~2 과정을 반복한다. 그림으로 보자면 아래와 같습니다. 추가적으로 공부했던 유튜브 주소입니다. 엔지니어 대한민국) 선택정렬 구현하기 public class Selection_Sort { public int[] solution(int N, int[] arr) { for (int i = 0; i ..

📖 문제 첫 줄에 한 줄에 필수과목의 순서가 주어집니다. 모든 과목은 영문 대문자입니다. 두 번 째 줄부터 현수가 짠 수업설계가 주어집니다.(수업설계의 길이는 30이하이다) 첫 줄에 수업설계가 잘된 것이면 “YES", 잘못된 것이면 ”NO“를 출력합니다. ⚠️ 주의사항 CBA가 필수고 CBDAGE는 통과인 것처럼 CB를 듣고 다른 것을 듣고 A를 듣는 것은 괜찮고, 순서만 맞으면 된다. 아예 안듣는 경우도 생각해서 코딩을 해야 한다. ✍️ 이해 /** * 1. 필수과목 입력 및 본인 과목 입력 * 2. 필수과목 Queue queue 넣기 * 3. 본인 과목이랑 비교하기 위해서 queue.contains()사용 * 3-1. queue.contains(o) * 3-1-1. o != poll() true ->..

📖 문제 첫 줄에 N과 K입력 K번째는 N에서 제외 반복 후 마지막에 1명 남은 왕자 번호 출력 ⚠️ 주의사항 for문의 시작을 0부터가 아닌 1부터 시작으로 해야 합니다. 마지막에 1명 남았을 때는 answer에 값 전달해서 return 해야 합니다. ✍️ 이해 /** * 1. 첫 줄에 N(왕자의 수)과 K(제외된 왕자) 입력 * 2. Queue에 n번째까지 저장 * 3. Queue빈 값일 때까지 반복 * 3-1. Queue에 poll값 집어 넣기 * 3-2. Queue poll한 후 size == 1 -> answer에 poll 값 대입 * 4. return answer; */ ✏️ 풀이 import java.io.BufferedReader; import java.io.IOException; impo..

📖 문제 한 줄에 쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 공백없이 입력 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고,레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. ⚠️ 주의사항 stack으로 풀돼 닫힌 괄호과 전체 길이의 괄호인지 아니면 레이저 포인터 괄호인지 체크 해야 합니다. ✍️ 이해 /** * 1. 괄호로 이루..

📖 문제 첫 줄에 후위식연산식이 주어진다. (1~9의 숫자 +,-,*,/ 로만 이루어진다.) 더보기 왼쪽에서 부터 순차적으로 읽기 시작. 숫자는 일단 지나치고 연산자가 나오게 되면 연산자 앞 쪽 두 개의 숫자로 연산 진행 예제) 352+*9- 1. 숫자 순차적으로 읽어나감 2. 연산자 +를 만나서 5 + 2 = 7 3. 연산자 *를 만나서 3 * 7 = 21 4. 숫자 순차적으로 읽어나감 5. 연산자 -를 만나서 21 - 9 = 12 6. 연산 결과 = 12 ⚠️ 주의사항 Stack에 쌓일 때 pop에서 나온 값을 저장 후 계산 해야한다 A = stack.pop(); B = stack.pop(); -> B - A 이므로 나중에 나온 것을 앞에 둬야한다. ✍️ 이해 /** * 1. 첫 줄에 연산식 입력 *..

📖 문제 2019 카카오 개발자 겨울 인턴십 문제_크레인 인형 뽑기 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 설명 게임 개발자인 "죠르디"는 크레인 인형 뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인..

📖 문제 첫 줄에 문자열 입력 소괄호 사이에 존재하는 모든 문자 제거하고 남은 문자만 출력하시오 ⚠️ 주의사항 '(' 괄호가 여러 개 나오고서 ')' 괄호 나올 때를 생각해야 합니다. 괄호 사이가 아닌 경우에는 그대로 stack에 유지하거나 다른 변수에 저장해야 합니다. ✍️ 이해 이번엔 두 가지로 나눴습니다. 먼저 제가 처음에 풀었던 방법이지만 비추하는 방법입니다. 코드로 풀어보면 너무 길고, 직관적이지가 않습니다. /** * 1. 첫 줄에 문자열 str 생성 * 2. 소괄호 사이에 존재하는 모든 문자 제거이므로 "(" 입력 받으면 ")" 받을 때 까지 모든 문자 제거 * 2-1. "(" 다음 "(" 더 들어오고 ")" 여러 개 있는 경우도 생각하므로 * 2-2. "(" 받을 때 마다 cnt++ 하고 ..