전체 글 146

[알고리즘] 삽입 정렬 Insertion Sort

삽입 정렬(Insertion Sort)삽입 정렬은 정렬이 안된 부분의 숫자를 하나씩 정렬된 부분의 적절한 위치를 찾아 끼워 넣는 알고리즘  동작 원리리스트의 두 번째 요소부터 시작한다.현재 요소를 앞 요소들과 비교하여 올바른 위치를 찾고, 그 위치에 삽입한다.이 과정을 리스트의 끝까지 반복하여 정렬한다.  단계별 구현리스트의 두 번째 요소부터 끝까지 순회.현재 요소를 current_value로 설정하고, 현재 위치의 이전 위치를 position으로 설정한다.current_value가 이전 요소보다 작으면 이전 요소를 한 칸씩 뒤로 이동한다.current_value가 올바른 위치에 도달하면 삽입한다.  Python 파이썬 코드:def insertionSort(lst: list) -> list: # 두..

알고리즘 2024.06.22

[알고리즘] 버블 정렬 Bubble Sort

버블 정렬(Bubble Sort)버블 정렬은 인접한 두 요소를 비교하여 필요한 경우 교환하며 리스트를 정렬하는 알고리즘   동작 원리리스트의 처음부터 끝까지 인접한 두 요소를 반복적으로 비교한다.앞의 요소가 뒤의 요소보다 크면 두 요소를 교환.각 반복이 끝날 때마다 가장 큰 요소가 리스트의 끝에 위치하게 된다.이 과정을 리스트 전체가 정렬될 때까지 반복.   단계별 구현리스트의 마지막 요소부터 첫 번째 요소까지 역순으로 순회.각 반복에서 리스트의 처음부터 현재 반복 요소까지 순회하여 인접한 두 요소를 비교하기.만약 앞의 요소가 뒤의 요소보다 크다면 두 요소를 교환.교환이 발생하지 않은 경우 리스트가 이미 정렬된 상태이므로 반복을 중단.   Python 파이썬 코드:def bubbleSort(lst: li..

알고리즘 2024.06.21

[알고리즘] 선택 정렬 Selection Sort

선택 정렬(Selection Sort)정렬되지 않은 리스트에서 매번 가장 큰(또는 작은) 요소를 선택하여 끝자리와 교환하는 방식을 반복하는 알고리즘시간 복잡도는 O(n^2)로, 작은 데이터셋에 적합하지만 큰 데이터셋에서는 비효율적이다. 동작 원리초기 리스트가 주어졌을 때, 리스트의 처음부터 끝까지 순회하며 최댓값(또는 최소값)을 찾는다.최댓값(또는 최솟값)을 리스트의 마지막 요소와 교환한다.남은 리스트에서 위 과정을 반복하여 정렬을 완료한다. 단계별 구현리스트의 마지막 요소부터 첫 번째 요소까지 역순으로 반복각 반복에서 리스트의 첫 번째 요소부터 현재 반복 요소까지 순회하여 최댓값을 찾기최댓값을 현재 반복 요소와 교환리스트가 정렬될 때까지 위 과정을 반복 Python 파이썬 코드:def selection..

알고리즘 2024.06.19

[Android] 안드로이드 SplashScreen

Android 12부터 SplashScreen API를 사용하면 실행 시 앱 내 모션, 앱 아이콘을 보여주는 스플래시 화면, 앱 자체로의 전환을 비롯한 애니메이션과 함께 앱을 실행할 수 있습니다. 이 글에서는 코드를 통해 SplashScreen을 구현해보겠습니다. 1. build.gradle (Module:app) - 자체 제공하는 API를 등록한 후 Sync Now를 눌러 반영해줍니다. dependencies { ... implementation("androidx.core:core-splashscreen:1.0.1") } 2. themes.xml - themes.xml 파일에 style을 만들어 Theme.SplashScreen을 상속받은 후 원하는 값을 입력해줍니다. ... 3. AndroidMani..

Android 2024.04.01

[Android] 안드로이드 textView 클릭 효과 주기

안드로이드에서 TextView는 기본적으로 클릭 이벤트를 처리할 수 있습니다. 하지만, TextView에 클릭 효과를 주려면 몇 가지 추가 설정이 필요합니다. 이 글에서는 TextView에 클릭 효과를 주는 방법에 대해 알아보겠습니다. textView 클릭 효과 넣기 textView에 클릭 효과를 주려면 XML에 android:foreground="?attr/selectableItemBackground" 속성을 추가해야 합니다. 이 속성은 textView에 눌렀을 때의 시각적인 피드백(클릭 시 버튼 효과)을 제공합니다. Kotlin // Kotlin / 코틀린 // Acitivty 또는 Fragment // ViewBinding 적용 textView.setOnClickListener{ // 클릭 시 수행..

Android 2024.02.25

[프로그래머스] 큰 수 만들기 - Lv.2

프로그래머스 42883번 문제 "큰 수 만들기" Lv.2 - 파이썬, 자바 [프로그래머스] 큰 수 만들기 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 더보기 https://school.prog..

코딩테스트 2024.02.08

[프로그래머스] 뒤에 있는 큰 수 찾기 - Lv.2

프로그래머스 154539번 문제 "뒤에 있는 큰 수 찾기" Lv.2 - 파이썬, 자바 [프로그래머스] 뒤에 있는 큰 수 찾기 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. 더보기 https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코..

코딩테스트 2024.01.29

[프로그래머스] 124 나라의 숫자 - Lv.2

프로그래머스 12899번 문제 "124 나라의 숫자" Lv.2 - 파이썬, 자바 [프로그래머스] 124 나라의 숫자 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solutio..

코딩테스트 2024.01.22

[프로그래머스] 땅따먹기 - Lv.2

프로그래머스 12913번 문제 "땅따먹기" Lv.2 - 파이썬, 자바 [프로그래머스] 땅따먹기 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마..

코딩테스트 2024.01.19

[프로그래머스] 야근 지수 - Lv.3

프로그래머스 12927번 문제 "야근 지수" Lv.3 - 파이썬, 자바 [프로그래머스] 야근 지수 Lv.3 - [파이썬/python] [자바/java] 💻 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 더보기 https://school.programmers.co.kr/learn/courses/30/lessons/12..

코딩테스트 2024.01.16

[프로그래머스] H-Index - Lv.2

프로그래머스 42747번 문제 "H-Index" Lv.2 - 파이썬, 자바, 코틀린 [프로그래머스] H-Index Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주..

코딩테스트 2024.01.10

[프로그래머스] n^2 배열 자르기 - Lv.2

프로그래머스 87390번 문제 "n^2 배열 자르기" Lv.2 - 파이썬, 자바 [프로그래머스] n^2 배열 자르기 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정..

코딩테스트 2024.01.07

[프로그래머스] 연속 부분 수열 합의 개수 - Lv.2

프로그래머스 131701번 문제 "연속 부분 수열 합의 개수" Lv.2 - 파이썬, 자바 [프로그래머스] 연속 부분 수열 합의 개수 Lv.2 - [파이썬/python] [자바/java] 💻 문제 설명 철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다. 원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다. 원형 수열의 모든 원소 elements가 순서대로 주어질..

코딩테스트 2024.01.04

[프로그래머스] 점프와 순간 이동 - Lv.2

프로그래머스 12980번 문제 "점프와 순간 이동" Lv.2 - 파이썬, 자바 [프로그래머스] 점프와 순간 이동 Lv2. - [파이썬/python] [자바/java] 💻 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용..

코딩테스트 2024.01.02
728x90
반응형