728x90

분류 전체보기 636

백준] 5566 - 주사위 게임(JOI 2010 예선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. M은 상근이가 주사위를 던짓 횟수이다. (2 ≤ N ≤ 1000, 1 ≤ M ≤ 1000)다음 N개 줄에는 -999이상 999이하의 정수가 하나씩 적혀있다. i번째 정수는 i번 칸에 써있는 지시사항 X이다. 이 때, X가 0이면 아무것도 하지 않고 그 자리에 멈춰 있는다. X가 양수인 경우에는 X칸 더 앞으로 진행하는 것을, 음수인 경우에는 |X|칸 뒤로 진행하는 것을 나타낸다.다음 M개 줄에는 1이상 6이하의 정수가 주어진다. j번째 정수는 상근이가 주사위를 j번째로 던졌을 때, 나온 눈이다.1번 칸과 N번 칸에 써있는 지시사항은 항상 0이다. 또, 항상 주사위를 M번 이하로 던져서 도착할 수 있다. 또, 1보다 작은 칸으..

백준] 11728 - 배열 합치기

시간 제한 : 1.5초메모리 제한 : 256MB 입력첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절대값이 109보다 작거나 같은 정수이다. 출력첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다. 소스코드 #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); int m, n, idx1, idx2; cin >> n >> m; vector arr1(n), arr2(m), ans(n+m); for (int i = 0; i >..

백준] 2858 - 기숙사 바닥(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 빨간색 블럭의 수 R과 갈색 블럭의 B가 주어진다. (8 ≤ R ≤ 5000, 1 ≤ B ≤ 2,000,000) 출력첫째 줄에 상근이네 방의 크기 L과 W을 공백으로 구분하여 출력한다. 만약, 두 수가 다르다면, 큰 수가 L이 되고 작은 수가 W이 된다. 항상 정답이 유일한 경우만 입력으로 주어진다. 소스코드 #include using namespace std; int main(void) { int r, b, sum; int sw, sl, w, l; cin >> r >> b; for (l = 1;; l++) { if (b%l == 0) w = b / l; sum = w * 2 + l * 2 + 4; if (sum == r) { if (w > l)..

백준] 2003 - 수들의 합2

시간 제한 : 0.5초메모리 제한 : 128MB 입력첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력첫째 줄에 경우의 수를 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n, m, s, e, sum = 0, cnt = 0; cin >> n >> m; vector arr(n); for (int i = 0; i > arr[i]; s = 0, e = 0; while (1) { if (sum >= m) sum -= arr[e++]; e..

백준] 1018 - 체스판 다시 칠하기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. M과 N은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개 줄에는 체스판의 색 상태가 주어진다. B는 검정색이며, W는 흰색이다. 출력첫째 줄에 지민이가 8*8크기로 자른 뒤에 다시 칠해야하는 정사각형 개수의 최솟값을 출력한다. 소스코드 #include #include using namespace std; string board[50]; int n, m; int countDrawing(int y, int x) { int cnt1 = 0, cnt2 = 0, ret; for (int i = y; i < y + 8; i++) { for (int j = x; j < x + 8; j++) { if ((i - ..

백준] 14563 - 완전수(중앙대학교 CodeRace 2017)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 자연수의 개수 T가 주어진다. T은 1000보다 작은 수이다.둘째 줄에는 공백을 사이에 두고 완전수인지 구해야 되는 자연수 N이 주어진다.(N> t; vector arr(t); for (int i = 0; i > arr[i]; for (int i = 0; i < t; i++) { if (arr[i] == 1) cout j) sum += (arr[i] / j + j); else break; } } if (sum == arr[i]) cout

코틀린(Kotlin) 조건문(When, if)

코틀린에서의 기본적으로 사용할 수 있는 조건문은 크게 두 가지, if와 when이다. if-elseif-else 구문은 기존의 언어들의 형태와 동일한 방식으로 사용할 수 있다. if(조건문) {내용...}else {내용...} whenwhen이라는 표현이 조금 색다른 표현처럼 느껴질 수 있는데 이는 다른 언어의 switch-case 구문이다.switch-case 구문에서 변수의 범위를 지정하는 일이 귀찮은데, 코틀린에서는 이 부분을 많이 개선한 것 같다. when(x) {1 -> { 내용... }2 -> { 내용... }else -> { 내용... }} when(x) {1, 2 -> { 내용... }in 10..30 -> { 10에서 30까지 }!in 10..30 -> { 10에서 30까지에 포함되지 않..

코틀린(Kotlin)을 이용하면 findViewById()를 사용할 필요가 없다

코틀린에서는 더 이상 findViewById()를 사용하지 않아도 된다.정확히는 Kotlin Android Extension만 적용시키면, 레이아웃을 import 시키는 것만으로도 XML에서 정의내린 위젯들을 Id로 읽어들여 하나하나 변수로 만들어줄 필요가 없어졌다. textviewID라는 ID를 가지는 요소를 XML에서 정의했다고 치자.자바에서는 말할 것도 없이 findViewById()를 사용하는 방법부터 써먹을 것이고, 코틀린에서도 전통적인 자바의 방식을 사용하는 사람들이 많을 것이다. TextView textViewID = findViewById(R.id.ui_text_hello) as TextView textViewID.text = "기존의 방식"이 방식이 아예 틀린 방식이거나 구 시대의 잔재라..

백준] 2564 - 경비원(KOI 2007 지역본선 초등부)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄에 하나씩 상점의 위치가 주어진다. 상점의 위치는 두 개의 자연수로 표시된다. 첫째 수는 상점이 위치한 방향을 나타내는데, 1은 블록의 북쪽, 2는 블록의 남쪽, 3은 블록의 서쪽, 4는 블록의 동쪽에 상점이 있음을 의미한다. 둘째 수는 상점이 블록의 북쪽 또는 남쪽에 위치한 경우 블록의 왼쪽 경계로부터의 거리를 나타내고, 상점이 블록의 동쪽 또는 서쪽에 위치한 경우 블록의 위쪽 경계로부터의 거리를 나타낸다. 마지막 줄에는 동근이의 위치가 상점의 위치와 같은 방식으로 ..

728x90