전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
·Algorithm (PS)
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제! 이 문제는 그리디 유형이다 알파벳 중에서 가중치가 높은 순서대로 9 8 7 ~ 0 숫자를 부여해주어야 하기 때문이다. 가중치는 자리수 !!! 라고 생각하면 된다 그러면 쉽게 풀린다 예를들어 입력으로 GCF ACDEB 가 입력되었으면 A는 만의 자리이므로 10000 라는 가중치를 가지게 되고 C의경우는 첫번째 단어에서는 10 , 두번째 단어에서는 1000 이므로 총 1010 라는 가중치..
·Algorithm (PS)
유형 : 그리디 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 의 최소값을 구하는 것이고 사실 문제에서는 a배열만 바꾸고 b배열은 순서 냅둬! 라고 했지만 우리는 최소값만 구해서 출력해주면 되므로...^^ 사실 a배열 순서도 움직여줘도 상관없다 ㅋㅋ a를 오름차순 b를 내림차순 정렬한 후에 각각의 원소들을 for문안에서 곱한 값들을 더해주면 된다 !
https://www.acmicpc.net/status?user_id=freemjstudio&problem_id=15666&from_mine=1 채점 현황 www.acmicpc.net 두번째 예시로 생각해보자 i) 중복 제거 n = 4, m = 2 그리고 후보로 주어진 숫자들은 9 7 9 1 이다. 어처피 우리는 중복해서 같은 숫자를 선택할 수 있으므로 중복을 set() 함수를 통해 제거한 후 다시 list로 형변환한다. 그러면 9 7 1 세가지가 남는다. 비내림차순이라는 조건이 주어졌으므로 -> 오름차순으로 바꿔봅시다. 그러면 후보들을 정렬했을 때 1 7 9 가 됩니다. ii ) for문과 재귀함수 호출 우리는 이제 1 7 9 세가지 선택지가 있고 이 세가지 숫자들을 for문을 통해서 순회하며 하나씩 ..
https://developer.apple.com/contact/topic/SC1104/subtopic/30038/solution/EML/details 로그인 - Apple idmsa.apple.com 로그인 한 상태로 위의 링크에서 심사를 빨리 해달라고 문의 메세지를 보내봅시다 ! 앱 아이디는 App connect에서 찾을 수 있습니다. 진짜로 해봤습니다 그것도 12월 31일인데 말이죠 ^^.. 연말에 애플 직원일시키기 그랬더니 정말로 하루 안에 제 문의에 대한 답변을 메일로 받을 수 있었습니다 ㅎㅎ https://developer.apple.com/contact/app-store/?topic=expedite 에서 애플 앱 리뷰 팀에 빠른 리뷰를 신청하고, 앱 정보와 왜 빠른 리뷰를 신청하는지에 대해 ..
문제에서 트리의 루트가 1번으로 주어졌다. BFS나 DFS를 이용해 1번부터 시작해서 노드들을 순회하면 된다. i) DFS import sys input = sys.stdin.readline sys.setrecursionlimit(10**9) n = int(input()) parent = [0] * (n+1) # 부모 노드를 저장한다. graph = [[] for _ in range(n+1)] for i in range(n-1): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) def DFS(start, graph, parent): for i in graph[start]: if parent[i] == 0: parent[i] =..
https://www.acmicpc.net/status?user_id=freemjstudio&problem_id=11053&from_mine=1 채점 현황 www.acmicpc.net dp 를 이용해서 풀어보았다. array[i] > array[j] and dp[i] < dp[j] 이면 dp[i] = dp[j] 이 코드를 통해서 자기 자신보다 작은 숫자들 중에서 dp에 저장된 배열이 가장 큰 값을 갱신하면서 가져오는것이다 저장된 값을 가져온다 ! # 11053 가장 긴 증가하는 부분 수열 n = int(input()) array = list(map(int, input().split())) dp = [0]*n for i in range(n): for j in range(i): if array[j] < ar..
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1) 적록색약이 아닌 사람 : array를 바꿀 필요 없이 BFS로 총 구역이 몇개인지 구한다. -> 어떻게 count를 하는가 ???가 또 관건인데... bfs에서 같은 문자가 계속 나오면 배열 c를 1로 표시를 해둔다. 그러면 이경우 R와 같은 위치에는 1이 나머지 배열은 아직 0이겠지요 ?? 이후 이중 for 문에서 if c[i][j] == 0: bfs 배열 c[i][j] 값이 0이면..
크흡...! 첫시도는 시간초과 떴다 ㅋㅋㅋㅋ #5430 AC import sys T = int(input()) for _ in range(T): command = sys.stdin.readline().rstrip() n = int(sys.stdin.readline()) array = sys.stdin.readline().rstrip()[1:-1].split(",") flag = 0 for cur in command: if cur == 'R': if len(array) == 0: flag = 1 print('error') break array.reverse() else: # 'D' if len(array) == 0: flag = 1 print('error') break array.pop(0) if flag..
minjiwoo
minji's engineering note