[BOJ] 1991번: 트리 순회
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net node 클래스를 만들어서 left 자식과 right 자식을 관리해주면 된다. 쉬운 문제였다 ! package com.ll.boj.silver.p1991; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { sta..
IAM 유저 생성과 MFA
·
DevOps/AWS
[IAM 유저 생성 실습] 1. services → IAM 2. Account management → Create User 3. Enter User detail 4. Set permissions 5. [Optional] Tags -> Add new tag 6. created User MFA 1. User -> Security credentials -> Assign MFA device 클릭 -> name 설정, Authenticaor app 클릭 후 Next 2. www.authy.com 접속 후 OS에 맞게 download 3. 설치 후 휴대폰 or 이메일 인증 및 key 입력 (Set up device 화면에서 show secret key 클릭 후 key를 authy에 입력) 3-1. 로그인된 auth..
[BOJ] 4485번 : 녹색 옷 입은 애가 젤다지?
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 첫 접근은 최단 경로를 구하는 문제라고 생각해서 BFS를 사용했다. 하지만 테스트 케이스조차 통과하지 못하였고 힌트를 얻어 다익스트라 알고리즘을 사용하는 것을 파악했다. 출발지 (0,0)에서 목적지 (n-1, n-1)까지 최단 비용을 사용하여 목적지에 도달해야 한다. 그러기 위해서는 무작정 출발지에서 최소 비용을 따라갈 것이 아니라 지속적인 갱신이 필요하다. 파란색 경로..
[LeetCode] 238. Product of Array Except Self
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/product-of-array-except-self/description/ Product of Array Except Self - LeetCode Can you solve this real interview question? Product of Array Except Self - Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nu leetcode.com 접근법을 몰라서 풀지..
[LeetCode] 36. Valid Sudoku
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/valid-sudoku/description/ Valid Sudoku - LeetCode Can you solve this real interview question? Valid Sudoku - Determine if a 9 x 9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules: 1. Each row must contain the digits 1-9 without repetition. 2. Each c leetcode.com 내 풀이 : class Solution: def isValidSudoku(self, boa..
[LeetCode] 347. Top K Frequent Elements
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/top-k-frequent-elements/ Top K Frequent Elements - LeetCode Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] leetcode.com 방법 1) 우선순위 큐를 사용한 풀이 class Solution: ..
[LeetCode] 746. Min Cost Climbing Stairs
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/min-cost-climbing-stairs/description/?envType=study-plan-v2&envId=dynamic-programming Min Cost Climbing Stairs - LeetCode Can you solve this real interview question? Min Cost Climbing Stairs - You are given an integer array cost where cost[i] is the cost of ith step on a staircase. Once you pay the cost, you can either climb one or two steps. You can either sta..
[LeetCode] 49. Group Anagrams
·
Problem Solving/LeetCode
https://leetcode.com/problems/group-anagrams/description/ Group Anagrams - LeetCode Can you solve this real interview question? Group Anagrams - Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase leetcode.com class Solution: def groupAnagrams(self, strs..
[위상 정렬] 문제로 이해하는 topology sort
·
Computer Science/Algorithms
https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net import sys from collections import deque si = sys.stdin.readline def topology_sort() : q = deque([]) for i in range(1,n+1) : if indegrees[i] == 0 : q.append(i) dp[i] = times[i] while q : cur = q.popleft() for x in graph[..
[최단 경로] 문제로 이해하는 dijkstra algorithm
·
Computer Science/Algorithms
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net import collections import sys from heapq import heappop, heappush si = sys.stdin.readline INF = float('inf') n,m,x = map(int,si().split()) graph = [[] for _ in range(n+1)] for _ in range(m) : u,v,w = map(in..
[LeetCode] 2811. Check if it is Possible to Split Array
·
Problem Solving/LeetCode
https://leetcode.com/problems/check-if-it-is-possible-to-split-array/description/ 지난 주 위클리 B번 문제.(해결하지 못했다.) 아주 코포스러운 문제(?)라고 한다. 문제에서 요구하는 근본적인 문제를 해결한다면 간단한 구현으로 풀이가 가능했다. 1. 두 개 합쳐서 m이상인 길이 2의 배열이 하나도 없을 때 왜 불가능한가? ex) arr =[2,1,1,1] m = 4 문제에서 요구하는대로 진행하다보면 결국 길이 1의 subarray가 각각 1개씩, 총 2개가 남아야한다. 그러기 위해선 이전 단계에서 [길이가 2인 m보다 크거나 같은 합을 가진 subarray] , [길이가 1인 subarray]에서 split이 이루어져야 한다. 하지만 예로..
[BOJ] 2252번 : 줄 세우기
·
Problem Solving/Baekjoon
https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 알고리즘 : 위상 정렬 import itertools import sys, heapq si = sys.stdin.readline from collections import defaultdict, deque, Counter from bisect import bisect_left, bisect_right from math import factorial,sqr..