Study

람다식을 활용한 중첩 반복문 탈출( BOJ 20410 )

ivymso 2022. 7. 11. 22:49

참고 : https://gall.dcinside.com/mgallery/board/view/?id=ps&no=24138&exception_mode=recommend&page=1 

 

중첩 for문 탈출시 람다 함수 활용하는 예시코드 - PS 마이너 갤러리

문제를 풀다보면 위와 같은 코드를 작성할 일이 종종 생기는데 매 for문 마다 덕지덕지 탈출 조건 달아주는것이 꽤나 지저분함 이게 3중 이상의 for문이면 아주 짜증나게 됨 이걸 goto문을 사용하

gall.dcinside.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
 
int M, Seed, X1, X2;
int xx1, xx2, a, b;
 
int main() {
    scanf("%d %d %d %d"&M, &Seed, &X1, &X2);
 
    // 람다 함수식으로 이중for문 탈출
    [&]() {
        for(int i=0;i<M;i++) {
            for(int j=0;j<M;j++) {
                xx1 = (i*Seed + j)%M;
                xx2 = (i*xx1 + j)%M;
 
                if(xx1 == X1 and xx2 == X2) {
                    a = i;
                    b = j;
                    return;
                }
            }
        }
    } ();
 
    printf("%d %d", a, b);
 
}
cs