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..
괜히 이렇게 말을 붙이면 어렵다 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..