전체 글 159

[알고리즘] 배열(자료구조1)

목차 # 배열의 개념 배열(Array)은 자료형이 같은 자료를 나열하여 메모리에 연속으로 저장하여 만든 자료 그룹이다. 예를 들어 요일을 나타내는 월, 화, 수, 목, 금, 토, 일과 같이 각각 변수로 선언하면 변수를 7개나 만들어 개별적으로 사용해야 하지만 하나로 묶어 배열로 만들면 배열을 한 번만 선언해 만들 수 있고, 각 요일이 배열의 요소가 되어 다루기 편해진다. # 1차원 배열 1차원 배열을 선언하는 형식은 밑과 같다. 자료형 배열이름 [배열요소의 개수 = 인덱스(idx)]; int array[10]; Tip. 변수 이름을 정할 때 영문자, 숫자 밑줄을 사용하며 첫 글자는 숫자를 사용할 수 없고 알파벳 대문자와 소문자를 구분하며 키워드나 예약어는 사용할 수 없다. 배열 선언의 예 의미 배열 요소..

알고리즘 2023.09.11

[알고리즘] 알고리즘 표현 방법의 종류(자료구조)

목차 #1 알고리즘 알고리즘은 주어진 문제를 해결하는 방법을 추상화하여 일련의 단계적 절차를 논리적으로 기술해 놓은 명세서이다. 알고리즘 표현 방법의 종류 자연어를 이용한 서술적 표현 알고리즘을 사람이 쓰는 자연어(언어)로 표현하는 방법이다. 자연어는 서술적일 뿐만 아니라 쓰는 사람에 따라 일관성이나 명확성을 유지하기 어렵다. 따라서 누구라도 쉽게 이해하고 쓸 수 있어야 하는 알고리즘을 표현하는데 한계가 있다. 순서도를 이용한 도식화 알고리즘을 순서도(Flow Chart)를 작성하는 규칙에 따라 도식화하는 방법이다. 순서도를 이용하면 명령의 흐름을 쉽게 파악할 수 있지만 복잡한 알고리즘을 표현하는 데에 한계가 있다. 프로그래밍 언어를 이용한 구체화 알고리즘을 프로그래밍 언어를 사용하여 표현하는 방법이다...

알고리즘 2023.09.11

[프로그래머스, LV.0] 수열과 구간 쿼리 1

목차 #1 수열과 구간 쿼리 1 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr [i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e

[프로그래머스, LV.0] 할 일 목록

목차 #1 할 일 목록 문제 설명 오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ todo_list의 길이 1 ≤ 100 2 ≤ todo_list의 원소의 길이 ≤ 20 todo_list의 원소는 영소문자로만 이루어져 있습니다. todo_list의 원소는 모두 서로 다릅니다. finished [i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다. 아직 마치지 못한 일이 적어도 하..

[프로그래머스, LV.0] 5명씩

목차 #1 5명씩 문제 설명 최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return 하도록 solution 함수를 완성해 주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다. 제한사항 5 ≤ names의 길이 ≤ 30 1 ≤ names의 원소의 길이 ≤ 10 names의 원소는 영어 알파벳 소문자로만 이루어져 있습니다. 입출력 예 names result {"nami", "ahri", "jayce", "garen", "ivern", "vex", "jinx"} {"nami", "vex"} #2 알고리즘 및 코드 import..

[프로그래머스, LV.0] 홀수 vs 짝수

목차 #1 홀수 vs 짝수 문제 설명 정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해 주세요. 두 값이 같을 경우 그 값을 return 합니다. 제한사항 5 ≤ num_list의 길이 ≤ 50 -9 ≤ num_list의 원소 ≤ 9 입출력 예 num_list result {4, 2, 6, 1, 7, 6} 17 {-1, 2, 5, 6, 3} 8 #2 알고리즘 및 코드 class Solution { public int solution(int[] num_list) { int even = 0, odd = 0; // even: 짝, odd: 홀 for(int i =..

[프로그래머스, LV.0] 왼쪽 오른쪽

목차 #1 왼쪽 오른쪽 문제 설명 문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return 하도록 solution 함수를 완성해 주세요. "l"이나 "r"이 없다면 빈 리스트를 return 합니다. 제한사항 1 ≤ str_list의 길이 ≤ 20 str_list는 "u", "d", "l", "r" 네 개의 문자열로 이루어져 있습니다. 입출력 예 str_list result ["u", "u"..

[프로그래머스, LV.0] n개 간격의 원소들

목차 #1 n개 간격의 원소들 문제 설명 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어 있는 원소들을 차례로 담은 리스트를 return 하도록 solution 함수를 완성해 주세요. 제한사항 5 ≤ num_list의 길이 ≤ 20 1 ≤ num_list의 원소 ≤ 9 1 ≤ n ≤ 4 입출력 예 num_list n result {4, 2, 6, 1, 7, 6} 2 {4, 6, 7} {4, 2, 6, 1, 7, 6} 4 {4, 7} #2 알고리즘 및 코드 import java.util.ArrayList; import java.util.List; class Solution { public int[] solution(int[] ..

[프로그래머스, LV.0] 순서 바꾸기

목차 #1 순서 바꾸기 문제 설명 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return 하도록 solution 함수를 완성해 주세요. 제한사항 2 ≤ num_list의 길이 ≤ 30 1 ≤ num_list의 원소 ≤ 9 1 ≤ n ≤ num_list의 길이 입출력 예 num_list n result {2, 1, 6} 1 {1, 6, 2} {5, 2, 1, 7, 5} 3 {7, 5, 5, 2, 1} #2 알고리즘 및 코드 import java.util.ArrayList; import java.util.List; class Solution { pub..

[프로그래머스, LV.0] 2의 영역

목차 #1 2의 영역 문제 설명 정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return 하는 solution 함수를 완성해 주세요. 단, arr에 2가 없는 경우 [-1]을 return 합니다. 제한사항 1 ≤ arr의 길이 ≤ 100,000 1 ≤ arr의 원소 ≤ 10 입출력 예 arr result {1, 2, 1, 4, 5, 2, 9} {2, 1, 4, 5, 2} {1, 2, 1} {2} {1, 1, 1} {-1} {1, 2, 1, 2, 1, 10, 2, 1} {2, 1, 2, 1, 10, 2} #2 알고리즘 및 코드 import java.util.ArrayList; import java.util.List; class Solution { public ..