[백준] 1339번: 단어 수학 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 풀이 이 문제에서는 각 알파벳에 가중치를 계산하고, 그 가중치에 따라 알파벳에 숫자를 할당해주어 계산하면 최대값이 계산된다. 먼저 26개의 알파벳에 대한 가중치를 저장하는 배열을 선언한다. 입력받은 문자열에서 각 알파벳의 자릿수에 따라 10의 배수로 가중치를 부여한다. 예를 들어 예제 입력 2에서 GCF는 G: 100, C: 10, F: 1,의 가중치가 부여되고, ACDEB는 A: 10000, C: 1000, D: 100, E: 10, B: 1의 가중..
[백준] 2346번: 풍선 터트리기 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 풀이 이 문제는 Deque(덱)을 이용해 풀이하면 된다. 덱은 양쪽에서 삽입과 삭제가 모두 가능한 자료구조이다. 풍선의 번호와 풍선에 적혀 있는 숫자를 저장할 풍선 data class를 정의하고, 이를 이용하여 입력 받은 수를 덱에 저장한다. 그 후, 덱이 비어질 때까지 반복하면서 풍선을 터뜨리는 순서를 구하면 된다. 덱의 첫번째 풍선을 터뜨리고, 풍선에 적힌 숫자에 따라 덱을 업데이트한다. 숫자가 양수인 경우, 덱의 앞부분에 있는 풍선을..
[백준] 2504번: 괄호의 값 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 풀이 스택을 활용해 올바른 괄호열인지 확인하여 값의 계산까지 구현하는 문제이다. 계산은 전체를 더한 결과값 sum과 중간 단계를 나타내는 tmp로 두 개의 변수를 사용한다. 여는 괄호인 경우 괄호에 해당하는 값을 스택에 넣어주고 tmp에 곱해준다. 닫는 괄호인 경우에 스택이 비어있거나 바로 전 괄호가 짝이 맞지 않다면 잘못된 괄호열이으로 결과값을 0으로 출력해준다. 잘못된 괄호열이 아니라면 바로 전 괄호가 짝이 맞다면 tmp를 sum에 더해주고, 스택..
[티스토리] 코드 블럭에 복사 버튼 만들기
·
티스토리
개요 이번에 블로그에서 사용하는 코드 블럭에 복사 버튼을 추가해보았다. 다른 글들을 참고하며 작성하고, 원하는대로 수정하여 이미지 버튼으로 만들어 보았다. clipboard.js 복사 버튼은 cilpboard.js의 기능을 사용해 구현할 수 있는데 파일과 사용법은 다음의 사이트에서 확인 가능하다. GitHub - zenorocha/clipboard.js: :scissors: Modern copy to clipboard. No Flash. Just 3kb gzipped :clipboard: :scissors: Modern copy to clipboard. No Flash. Just 3kb gzipped :clipboard: - GitHub - zenorocha/clipboard.js: :scissors: ..
[백준] 4485번: 녹색 옷 입은 애가 젤다지? - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 풀이 다익스트라 알고리즘을 사용하여 최단 거리를 찾을 수 있다. 알고리즘은 우선 순위 큐를 활용하여 현재까지 발견된 최단 거리를 가진 정점을 기준으로 탐색한다. 각 정점까지의 사용되는 비용을 저장하는 배열을 만들고 시작 지점의 비용을 초기화해준다. 그 후, 우선 순위 큐에 시작 지점을 추가하고 탐색을 시작한다. 탐색 중에는 현재까지 저장된 비용보다 더 작은 비용으로 이동할 수 있는 경우에 해당 정점의 비용을 갱신하고 큐에 추가한다. 이 과..