728x90
728x90

반복문 5

코틀린(Kotlin)에서 중첩 반복문 빠져나오는 방법

과거에 입문 언어로 선택되었던 언어들과 현재 많은 사람들이 쓸 줄은 아는 언어들, C, C++, Java 같은 것들은 중첩반복문을 빠져나오려면 별도의 플래그가 필요했다. 프로그래밍 자체에 서툰 사람들은 이 플래그 개념에서 헤매는 경우가 많았다. 적어도 필자 경험 상, 많은 학부생이 그랬다. 반복문이라는 것이 처음 접하는 사람에게는 어디까지 반복되는지 감이 잘 안 오는 제어문인 데다가, 제어문의 범위에 대해서 완벽히 숙지되지 않은 사람들에게는 반복문을 중단시키는 것 자체가 이해가 되지 않는 경우가 많다. 반복문 내부에 있는 반복문에서 break로 반복 작업을 중단시킨다고 하더라도, 그것을 둘러싸고 있는 반복문(여기서는 바깥 반복문이라고 하겠다.)을 중단시키는 것은 아니다. 따라서 바깥 반복문에 대해서 계속..

백준] 10474 - 분수 좋아해?(ACM-ICPC Regional)

시간 제한 : 2초메모리 제한 : 256MB 입력한 줄에 걸쳐 한 테스트 케이스가 입력된다. 각각의 테스트 케이스는 [1, 2^31 - 1]범위의 두 정수가 입력된다. 첫번째 정수는 분자고 두번째는 분모이다. "0 0" 입력이 들어오는 라인에서 입력을 종료한다. 출력각 테스트 케이스에 대해 한 줄에 걸쳐 주어진 입력에 맞는 대분수를 공백토큰으로 구분하여 출력하라. 소스코드 #include using namespace std; int main(void) { int x, y; while (1) { cin >> x >> y; if (x == 0 && y == 0) break; cout

백준] 3035 - 스캐너(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다. 출력스캐너에 스캔된 결과를 총 R*ZR개 줄에 걸쳐서 C*ZC개 문자씩 출력한다. 소스코드 #include using namespace std; int main(void) { int r, c, zr, zc; char arr[51][51]; cin >> r >> c >> zr >> zc; for (int i = 0; i > arr[i]; for (int i = 0; i < r; i++) { for (int l = 0; l < zr; l++) { for (int j =..

백준] 3040 - 백설 공주와 일곱 난쟁이(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력총 아홉개 줄에 1보다 크거나 같고 99보다 작거나 같은 자연수가 주어진다. 모든 숫자는 서로 다르다. 또, 항상 답이 유일한 경우만 입력으로 주어진다. 출력일곱 난쟁이가 쓴 모자에 써 있는 수를 한 줄에 하나씩 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[9], sum = 0; for (int i = 0; i > arr[i]; sum += arr[i]; } for (int i = 0; i < 8; i++) { for (int j = i + 1; j < 9; j++) { if (sum - arr[i] - arr[j] == 100) { for (int k ..

728x90