전체 글 205

[BaekJoon] 백준 1026번 _ 보물 for JAVA _ 그리디 알고리즘

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net A[0] x B[0] + A[1] x B[1] + ... A[N-1] x B[N-1] 의 값이 최소값이 되기 위해서는 A의 가장 작은 수 x B의 가장 큰 수 이런식으로 곱셈이 되어야 한다. 문제에서 A의 배열속 값만 움직일 수 있다고 했지만 B도 같이 움직여줘도 된다. 왜냐면 큰거 x 작은거가 되는 계산값..은 같으니까.... 순서가 중요하지 않으므로 A는 오름차순, B는 내림차순으로 정..

알고리즘/백준 2022.01.18

[BaekJoon] 백준 13305번 _ 주유소 for JAVA _ 그리디 알고리

https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 내가 푼 방법은 기름값이 싸면 만땅 충전해서 가는게 좋음 그래서 이전 기름값과 비교해서 작은곳에서 다음다음 갈 것 까지 만땅 충전해서 가는것이다... 그러니까 기름값 싼 곳을 찜해놓고 다음 기름값, 다다음 기름값, 다다다음 ... 이렇게 비교해서 작은곳에서 만땅 넣는다. 코드 import java.io.BufferedReader; import java.io.IOException; i..

알고리즘/백준 2022.01.17

[BaekJoon] 백준 1931번 _회의실 배정 for JAVA _ 그리디 알고리즘

https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net https://st-lab.tistory.com/243 엄청난 블로그 설명...!! 풀이도 저 블로그에 아주 잘 설명되어있다.~ 알고리즘을 떠올리지 못했다. 이런 문제를 풀 때는 그려보는게 짱이다! 라는걸 다시 느낌......~ 다음부터는 꼭! 그려보도록 하자.. 2주정도 어학성적때매 쉬었더니 감 더 떨어짐 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arr..

알고리즘/백준 2022.01.17

[BaekJoon] 백준 1541번_잃어버린 괄호 for JAVA _그리디 알고리즘

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 푸는 방법은 최소값으로 괄호를 만들기 위해서는 - 뒤의 +가 있는 숫자들까지만 괄호를 쳐주면 된다. 무슨 말이냐면... 예를 들어 1+2-3+4+5-10+5 = 2 인데 2- 뒤의 3+4+5를 묶고 - 뒤에 10+5를 묶는다는 것이다. 그래서 1+2-(3+4+5) -(10+5) = -24 라는 값이 나온다. 푸는 방법은 바로 떠올렸는데... string으로 받아올 저 케이스를 어떻게 숫자와 ..

알고리즘/백준 2022.01.05

[프로그래머스] 구명보트 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr people[] 배열이 뒤죽박죽 되어있으므로 Arrays.sort()를 이용해 오름차순으로 정리한다. 그리고 여기서 가장 큰 수는 people.length() - 1 인덱스를 가진 수 이다. 맨 뒤에꺼! 얘랑 people[0] 인 가장 작은 수와 더했을 때 limit보다 작으면 둘이 태울 수 있고 limit보다 크다면 뚱뚱이 한명만 태..

[프로그래머스] 큰 수 만들기 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 안봐도 되는 실패기 위의 문제 알고리즘은 왼쪽 숫자부터 그 옆 숫자와 비교하여 오른쪽 숫자가 더 크면 왼쪽 숫자를 지우는 방식을 사용하였다. 그러니까 4177252841 에서 4, 1을 비교하면 4 < 1 이므로 넘어가고 1 < 7 이므로 1을 삭제한다. 그러면 477252841이 되고 4 < 7 이므로 4를 삭제하여 77252841이 되고 2 < 5 이므로 2를 삭제하여 7752841, 2 < 8 이므로 775841 이 return 되는 것이다. 그래..알고리즘은 이렇게 짰고 구현을 할 때 2중 for문으로 k번 만큼 돌게, 왼쪽부터 훑..

[프로그래머스] 조이스틱 for JAVA _ 그리디 알고리즘

https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 약간 노가다로 풀었다. 우선 조이스틱 상하를 살펴보면 A~N까지 0~13이고 Z~O가 0~12이다. N이 딱 가운데임 그래서 arraylist에 A~N, Z~O 를 각각 넣어서 몇 번째에 있는지 확인해 answer에 더해주었다. 조이스틱 좌우가 어려운데.. 예를 들어 ABAAAAAAB 일 때 무작정 오른쪽으로 가면 효율이 떨어진다. > < <..

[프로그래머스] 약수의 개수와 덧셈 for JAVA

https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 내가 푼 방법 그냥 문제 그대로 풀었다. 약수 개수 구하는 함수 따로 만듦. 코드 class Solution { public int solution(int left, int right) { int answer = 0; for(int i = left; i

[Android Kotlin] TabLayout과 ViewPager2를 이용해 화면 구현하기

앱 롤 백과의 스킨부분을 구현하기 위해 TabLayout과 ViewPager2를 이용해 옆으로 슬라이드 하거나 tab을 눌렀을 때 화면을 전환할 수 있도록 만들 것이다! 우선 가장 바깥 틀을 만든다. fragment_skin.xml 그리고 챔피언별 화면, 스킨 테마별 화면 두 개가 필요한데 우선 TextView만 넣어서 화면 전환 확인만 진행할 것이다. fragment_skin_by_champion.xml 이렇게.... 클래스도 대충 만든다. SkinByChampionFragment.kt package com.example.firstapp.fragment.skin import android.os.Bundle import android.view.LayoutInflater import android.view..