[2309번] 일곱난쟁이
·
📑 공부/🌐 BOJ
📌 문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다.일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다.뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 💡 입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 💡 출력일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 ..
Q&A (continue, goto, null)
·
📚 STUDY/🔥 C
📌 6.1 단원에서 나온 루프 말예요, "> 0" 검사를 빼면 좀 더 루프가 짧아지지 않나요? i가 0이 되면 루프는 멈출거고, 원래 사용했던 루프랑 동일하게 작동하잖아요.while (i > 0) { printf("T minus %d and counting\n", --i);}while (i) { printf("T minus %d and counting\n", --i);} - 간결해보이지만, 몇 가지 단점이 존재함.① 가독성이 떨어짐. 새 코드를 보면 i가 0이 되면 종료할 거라는 건 알겠지만, i를 통해 숫자를 증가하면서 수를 세고 있는 건지, 감소갛면서 수를 세고 있는 건지 불명확함.② 새 코드는 만약 i가 루프가 실행될 때, 음수라도 되는 순간 원래 코드에서 의도한 방식대로 작동하지 않음. 원래..
[6-5] null문
·
📚 STUDY/🔥 C
- 구문은 null의 형태를 띨 수 있음. 즉, 세미콜론을 제외하고 아무 기호도 없는 구문을 의미함.- null문은 단 1가지의 용도로 거의 쓰임. '본문이 비어있는 루프'for (d = 2; d   ✅ if문에서 괄호 이후에 세미콜론을 놓게 되면 if문의 본문이 if문의 제어식의 결과값과 무관하게 작동됨.if (d == 0); /*** WRONG ***/ printf("Error: Division by zero\n");  ✅ while문의 경우 무한루프가 될 수도 있음.i = 10;while (i > 0) ; /*** WRONG ***/{ printf("T minus %d and counting\n", ..
[6-4] 루프에서 벗어나기
·
📚 STUDY/🔥 C
프로그래밍을 하다보면 루프를 중간에 종료시켜야하는 때, 혹은 아예 종료되는 지점이 여러개인 반복문을 작성해야 할 때가 발생함.➡ break문을 통해 이 2가지 상황을 모두 만족시킬 수 있음. 📌 break문- break문은 같은 방식으로 while문, for문, do문과 같은 반복문에도 사용됨. 🌐 자연수 n이 소수인지 판별하는 프로그램for (d = 2; d break문은 종료점이 루프의 시작이나 끝이 아닌 도중에 있을 때, 상당히 유용함. for (;;) { printf("Enter a number (enter 0 to stop): "); scanf("%d", &n); if (n == 0) { break; } printf("%d cubed is %d\n", ..
[6-3] for문
·
📚 STUDY/🔥 C
- for문은 숫자를 세야하는 변수가 있을 때, 상당히 유용한 반복문임. 💡 for문 구조for ( expr1 ; expr2 ; expr3 ) statement// 예제for (i = 10; i > 0; --i) { printf("T 빼기 %d, 세는 중\n", i);}예제의 for문이 실행이 되면 변수 i는 10으로 초기화가 되고, i가 0보다 큰지 판별한다. 10은 0보다 크므로 T 빼기 %d, 세는 중 메세지가 출력되고, i는 감소된다. 그 다음 다시 i > 0을 판별한다. 여기서 i는 10부터 1까지 지속되므로 예제의 루프본문은 총 10번 실행된다. 📌 for문 관용적 표현- 일정 횟수 or 구간에서 변수를 증감시키는 동안 반복할 때 매우 유용한 반복문임.-..