목록분류 전체보기 (591)
어흥
문제 링크: www.hackerrank.com/challenges/magic-square-forming/problem Forming a Magic Square | HackerRank Find the minimum cost of converting a 3 by 3 matrix into a magic square. www.hackerrank.com 1. 주의할 점 - 매직 스퀘어를 이루는 경우가 몇개 없어서 전부 작성하고 풀 수 있지만, DFS로 풀 경우 가로 세로 대각선의 합이 항상 15가 되야 한다 - 중앙의 값은 무조건 5여야 한다 2. 구현 - 입력받은 S벡터의 중앙값이 5가 아니라면, 5로 바꾼 이후 차이만큼 Cnt값을 추가하며 DFS()를 시작한다 - 중앙이 5이므로, 중앙을 기준으로 정의될 수 ..
문제 링크: www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net 1. 주의할 점 - 메모아이징 기법을 이용한다 - 값을 저장해서 사용하는 형태로 한다 2. 구현 - 모든 수를 입력 받고, Check[][] 배열에는 현재 지점에서 시작하여 살 수 있는 최대 일수를 저장한다 - 만약 Check[][] 값이 0이라면 DFS()를 수행한다 - DFS(y,x) 함수에는 이미 해당 Check[y][x] 값이 양수라면 해당 값을 반환한다. 0이라면, 현재 위치를 기..
문제링크: www.acmicpc.net/problem/14725 14725번: 개미굴 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 www.acmicpc.net 1. 주의할 점 - 트리나 트라이에 대해서 알고 있어야 한다 - 사전순으로 출력해야한다(정렬된 무엇인가를 사용) 2. 구현 - Node 구조체를 만들어서 해당 Node의 Map을 생성하고, insert()와 print()의 기능을 하는 함수를 생성한다 - Node구조체 형태인 Root 노드를 처음에 만든다 - Insert() 함수는 입력받은 길을 저장하고 있는 V 벡터와 현재 개미굴의 ..
문제 링크: www.acmicpc.net/problem/13911 13911번: 집 구하기 첫줄에는 정점의 개수 V(3 ≤ V ≤ 10,000)와 도로의 개수 E(0 ≤ E ≤ 300,000)가 주어진다. 그 다음 E줄에 걸쳐 각 도로를 나타내는 세 개의 정수 (u,v,w)가 순서대로 주어진다. 이는 u와 v(1 ≤ u,v ≤ V)사 www.acmicpc.net 1. 주의할 점 - 우선순위큐를 사용한 다익스트라를 이용하지 않은 경우 TLE가 날 확률이 크다 - 조건들을 잘 살핀다 2. 구현 - 모든 간선에 대한 정보를 입력 받아서 V[] 벡터에 넣는다 - Dist[][]배열을 전부 최대로 초기화한 이후, 맥세권과 스세권을 다익스트라 알고리즘을 통해 구한다 - 집에서 맥세권과 스세권까지의 최대거리를 넘지 ..
문제 링크: www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 1. 주의할 점 - 정렬을 한다 - 해당 크레인이 자신이 들 수 있는 무게보다 적고, 해당 크레인만 들 수 있는 박스 수를 통해 해결한다 - 가장 무거운 박스의 무게가 크레인이 들 수 있는 가장 무거운 무게를 넘어서면 -1을 출력한다 2. 구현 - 입력받은 크레인이 들 수 있는 무게(Crane), 박스의 무게(Box)를 오름차순으로 정렬한다 - Avail[i] 배열에는 i-1번 크레..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bpHlmi/btqLGZvptzc/dkPfPB1wKbhgPwGiFT6Jwk/img.png)
1. 자판이 UI를 가리지 않도록 설정 개발문서 developer.apple.com/documentation/uikit/uitextview?language=objc 를 참조한다. 해당 링크에서 Keyboard Notifiactions에 적힌 4가지 상태 중에서 Will이 적힌 2개를 사용한다 (1) 해당 기능이 적용된 VC에 property를 사용하여 토큰을 정의한다 //A VC.m @property (strong, nonatomic) id willShowToken; @property (strong, nonatomic) id willHideToken; (2) viewDidLoad() 함수에 다음 코드를 작성한다 //A VC.m -(void)viewDidLoad { . . . //자판을 켰을 때, 글을 가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7Gvtd/btqLC2YPoQ1/hZ9RLYKQxpR9xkFMbkwvpk/img.png)
문제점: Present Modally나 다른 세그웨이로 화면을 전환했는데 다음 화면이 전체 화면이 아닌 경우(A vc ->B vc) - +버튼을 눌러서 화면을 전환하고자 할 때 다음과 같이 전체 화면으로 표시되지 않는다 [위의 문제로 인해 발생하는 문제] 가정) 아래와 같은 코드가 작성되어있다 - A vc.m에는 viewWillAppear 함수가 구현되어 있다 - B vc.m에는 Save버튼을 눌렀을 때 dismissViewControllerAnimated 코드가 작성되어 있다 //A vc.m -(void)viewWillAppear:(BOOL)animated { NSLog(@"Appeared!!"); [super viewWillAppear:animated]; [self.tableView reloadDat..
문제 링크: www.acmicpc.net/problem/10216 10216번: Count Circle Groups 백준이는 국방의 의무를 수행하기 위해 떠났다. 혹독한 훈련을 무사히 마치고 나서, 정말 잘 생겼고 코딩도 잘하는 백준은 그 특기를 살려 적군의 진영을 수학적으로 분석하는 일을 맡게 되었�� www.acmicpc.net 1. 주의할 점 - 유니온 파인드를 사용할 경우, 부모를 저장하는 Par[] 배열이 항상 갱신되도록 해야한다 - 사용하는 메모리들에 대한 초기화를 잘 한다 2. 구현 - 입력받음과 동시에 Par[] 배열을 초기화하며 입력받은 데이터들을 V벡터에 넣는다 - 각 통신탑과의 거리를 구하여 반지름의 합보다 작거나 같다면 같은 진영으로 판단 -> Make_union() 함수를 수행한다..