전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
문제에서 트리의 루트가 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..
괜히 이렇게 말을 붙이면 어렵다 call by value , call by reference 정확하게 한번 알아보자 ! 1. 값에 의한 호출(call by value) C언어는 함수의 인자 전달 방식이 기본적으로 값에 의한 호출이다. 값에 의한 호출이 대체 무엇인가?! 바로, 함수 호출 시 실인자의 값이 형식인자에 복사되어 저장된다는 말이다. '복사'되어 저장되니까 당연히 값에 의한 호출을 사용해서는 함수 외부의 변수 값을 함수 내부에서 수정할 수 없다 !
1. char 포인터 : 문자열의 첫 문자 주소를 저장하므로 문자열 상수의 주소로 사용한다. char *dept; char *dept = "일본어문학전공"; 이때 변수 dept은 "일본어문학전공" 값을 참조할 수 있다. 변수 dept는 포인터로 단순히 문자열 상수를 다루는 경우 효과적이다. dept = "컴퓨터공학과"; // 가능 strcpy(dept, "소프트웨어학부"); // 오류 - 문자열 자체를 저장하거나 수정하는 것은 불가능 scanf("%s", dept); // 오류 2. char 배열 : 문자열을 구성하는 모든 문자를 하나하나 저장하고 마지막에 '\0' 문자를 저장하여 사용한다. char name[12]; char name[12] = "free"; // free\0 이 저장된다. 변수 nam..
Enum (열거형) : 기호 상수들의 집합을 정수들로 매핑하는 선언 코드의 가독성을 높여주고 기호상수들의 이름으로 그 의미를 살릴 수 있다. enum day {MON, TUE, WED, THU, FRI, SAT, SUN}; // 0 부터 시작하여 1씩 증가하며 맵핑된다. 즉 0 1 2 3 4 5 6
개발할때 실제로 많이 안써봐서 생소했던 공용체 공용체 (Union) : 같은 메모리 영역을 여러 개의 변수가 공유한다. 공유하므로 어느 한 멤버의 내용을 변경하면 다른 멤버의 내용도 바뀐다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하다. 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당한다. union id { int number; // 4 byte char name[14]; // 14 byte }; -> 공용체 id의 경우 크기가 가장 큰 멤버 변수인 name의 크기인 14byte로 메모리가 할당될 것이다.
minjiwoo
minji's engineering note