전체 글 234

프로그래머스 - 모음사전

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에는 규칙이 보여서 수학적으로 접근해보려고 했는데 멍청해서 그런가 풀이가 안떠올랐다.그래서 주어지는 조건으로 추측했을때 경우의 수가 엄청 많지는 않겠다 싶어서무식하게 발생할 수 있는 경우의 수를 다 생성하는 함수를 만들고정렬한 뒤 indexOf 를 이용해서 순서를 찾아냈다. class Solution { fun solution(word: String): Int { var answ..

알고리즘 2024.08.28

프로그래머스 - 피로도

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 보자마자 dfs 가 떠오른 문제다.신경써야할 부분은 입장에 필요한 최소 피로도와 소모 피로도를 dfs 를 돌때계속 업데이트 해주면서 방문체크와 함께 해주면 된다. 그리고 여러 순서로 던전을 방문하는걸 다 체크 해봐야하기 때문에방문을 한 뒤에 로직이 끝날때는 방문처리를 해제해주자.class Solution { var visited = booleanArrayOf() var answer: Int..

알고리즘 2024.08.27

프로그래머스 - 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 성능이 좋은 코드는 아닌것 같지만 ..우선 map 을 이용해서 행사 상품 이름과 사려는 갯수를 넣었다. 그리고 10개씩 상품과 사려는 갯수가 할인품목과 일치해야하기 때문에 left 와 right 를 10 이 차이나게 한 상태로 이동 시키고  위 범위를 이용하여 만들어낸 배열에서 map 에 저장된 key의 품목이 있는지 체크하고 있다면 갯수를 -1 해준다. 이렇게 진행하면서 map 의 모든 key 의..

알고리즘 2024.08.27

프로그래머스 - 숫자 짝꿍

https://school.programmers.co.kr/learn/courses/30/lessons/131128  코드가 그리 깔끔하진 않지만 스스로 생각했을때 아이디어는 나쁘지 않았다고 생각한다 ㅎㅎ각 문자열의 숫자들을 카운트할 Hashmap 을 만들어서 숫자들을 세어주고같은 키를 확인할때 더 적은 숫자를 가진쪽이 공유되는 숫자라고 판단할 수 있다고 생각했다.그리고 minCount 만큼 해당 key 를 문자열에 더해주면 숫자 짝꿍 숫자가 만들어지고이 문자열을 정렬해주면 가장 큰 수가 만들어진다!class Solution { fun solution(X: String, Y: String): String { var items = HashMap() var items2 = Ha..

알고리즘 2024.08.27

프로그래머스 - 혼자 놀기의 달인

https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제를 읽었을때- 임의로 카드를 선택해야하고 -> 다 확인을 해봐야한다.- 열어야 하는 상자가 이미 열려있을때 까지 반복 -> visit 배열을 사용할 것를 읽고 dfs 를 써보면 어떨까 싶었다. 그러나 일반적인 dfs 문제처럼 깊이나 도달해야하는 조건이 존재하지는 않고방문을 할 수 없을때까지 그냥 반복시키면 됐다. 카드 배열 첫번째부터 다 확인을 시작한다.그리고 문제 조건에 맞게 예제를 설명해보면..

알고리즘 2024.08.26

프로그래머스 - 연속 부분 수열 합의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/131701 문제를 처음부터 잘못 이해하기도 했고, 너무 어렵게 생각했다.항상 문제를 볼때 어렵게 생각하지 말고 쉬운 생각부터 하나씩 해보자 핵심은 - copyOfRange 로 연속 부분 수열을 만들기- set 을 이용해서 중복을 제거하기- 원형이라는 조건이기 때문에  elements 의 두배가 되는 array 를 만들어놓기 class Solution { fun solution(elements: IntArray): Int { var answer: Int = 0 val newArr = IntArray(elements.size * 2) { 0 } for (i in..

알고리즘 2024.08.26

프로그래머스 - 택배상자

https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 스스로 풀지 못한 문제다.stack 을 사용하고 하나의 for 문을 쓰면서 트럭에 싣을때마다 target 이라는 int 를 증가시키면서남은 배열과 stack 에서 우선순위에 맞게 트럭에 싣을 수 있는 택배가 있는지 체크한다. 라는 생각은 했는데 처음 우선순위를 확인하기 위한 전처리를 생각하지 못했다. import java.util.*class Solution { fun solution(orde..

알고리즘 2024.08.25

프로그래머스 - 삼총사

https://school.programmers.co.kr/learn/courses/30/lessons/131705?language=kotlin 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 조합 알고리즘을 사용하는 전형적인 문제다. 조합을 이용해서 3개를 뽑았을때 3개의 합이 0 인 경우면 answer 값을 증가시켜주면 된다.class Solution { var max = 3 // 뽑을 숫자 개수 lateinit var result: Array // 뽑은 결과 var answer: Int = 0 fun solution(number: I..

알고리즘 2024.08.25

라이브러리를 배포해보자.

스스로 만든 라이브러리를 배포해보는건 안드로이드 개발자를 시작할때부터 버킷리스트 중하나였다. 이번에 샘플프로젝트를 업데이트 하면서 이미지 crop 하는 커스텀 뷰를 개발했는데아직 완성도가 높진 않지만 라이브러리로 따로 빼서 관리해보고 싶다는 생각을 했다. 그래서 시간도 많겠다 뚝딱 해봤다. 아 참 jitPack 을 이용해서 배포한다! 1. 라이브러리를 만들기 위해 모듈을 생성해보자프로젝트를 새로판다.그럼 기본적으로 app 모듈이 있을텐데 이건 일단 냅두고모듈을 하나 새로 만들어보자. new Module 을 누르고 Android Library 로 만든다. 이렇게 해서 생긴 모듈이 실제 사용되는 라이브러리가 될 예정이다. 2. 라이브러리가 될 모듈에 라이브러리화 시키고 싶은 기능들을 넣는다.나의 경우는 샘플..

Android 2024.08.24

프로그래머스 - 콜라 문제

https://school.programmers.co.kr/learn/courses/30/lessons/132267?language=kotlin 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 그대로 수식만 세우면 풀린다.class Solution { fun solution(a: Int, b: Int, n: Int): Int { var answer: Int = 0 var count = n // count 를 줄여가면서 최소로 가져가야하는 숫자인 a 보다 작아지면 while 탈출 whi..

알고리즘 2024.08.21