본문 바로가기
반응형

알고리즘4

겹치지 않는 N자리 수를 오름차순으로 출력하기 이번에는 제목 그대로 겹치지 않는 N자리 수를 오름차순으로 차례로 출력해 보도록 하겠습니다. 이때 N을 3이라고 가정을 하겠습니다. 3자리 수 또한 오름차순으로 되어 있어야 합니다. 즉, 012는 되는데 132는 안 되는 겁니다. 012, 013, 014, 015, 016, 017, 018, 019, 023, 024, ..., 089, 123, ...., 789 위와 같이 출력될 것입니다. 첫째 자리의 최댓값은 7이고 둘째 자리의 최댓값은 8이고 셋째 자리의 최댓값은 9입니다. 규칙이 하나 보이지 않습니까? 왠지 모르게 각 자리의 최댓값이 10 - N + index인 것 같습니다. 그면 몇 자리가 들어오더라도 최댓값을 설정할 수 있게 되었습니다. 쉼표는 마지막에만 없으면 될 것 같으니 첫째 자리가 최댓값.. 2023. 10. 18.
숫자를 write함수를 사용해 출력하기 시작하기에 앞서서 write함수를 아직은 잘 모르시는 분들은 아래의 포스팅을 참고해 주시면 감사할 것 같습니다. https://hig0617.tistory.com/47 wirte함수는 문자형 왜에는 출력이 불가능합니다. 따라서 숫자를 문자로 바꾸어야 합니다. ascii코드를 보면 아시겠지만 ascii코드에는 0부터 9까지의 숫자만 나타내어져 있고 10자리수 이상은 표현이 되어있지 않습니다. 따라서 한자리씩 출력해야 하며 출력 순서 또한 가장 큰 자리수 먼저 진행을 해야합니다. 예를 들어 135를 출력하게 된다면 1 -> 3 -> 5순으로 출력을 진행하겠죠. 만약에 음수라면, '-'를 먼저 출력하고 숫자를 출력해야겠죠. 예를 들어 -135를 출력하게 된다면 - -> 1 -> 3 -> 5순으로 출력할 것입니.. 2023. 10. 17.
겹치지 않는 3자리 수를 오름차순으로 출력하기 이번에는 제목 그대로 겹치지 않는 3자리 수를 오름차순으로 차례로 출력해 보도록 하겠습니다. 이때 3자리 수 또한 오름차순으로 되어 있어야 합니다. 즉, 012는 되는데 132는 안 되는 겁니다. 012, 013, 014, 015, 016, 017, 018, 019, 023, 024, ..., 089, 123, ...., 789 위와 같이 출력될 것입니다. 그면 이번에는 while문으로 한 번 작성해 보죠. 첫째 자리의 최댓값은 7이고 둘째 자리의 최댓값은 8이고 셋째 자리의 최댓값은 9입니다. 각 자리의 최댓값을 이렇게 설정하면 되겠네요. 쉼표는 마지막에만 없으면 될 것 같으니 첫째 자리가 7이면 쉼표를 출력하면 안 되겠네요. (789가 마지막 수이면서 첫째 자리가 7일 때의 수는 789밖에 없습니다... 2023. 10. 16.
양수 음수 판독기 write함수를 이용하여 진행을 하였습니다. write함수를 아직은 잘 모르시는 분들은 아래의 포스팅을 참고해 주시길 바랍니다. https://hig0617.tistory.com/47 양수이거나 0이면 p를 음수이면 n을 출력하는 함수를 만들어 보도록 하겠습니다. if문을 사용하여 양수인지 음수인지 파악을 하면 됩니다. #include void is_negative(int n) { if (n >= 0) write(1, "p", 1); else write(1, "n", 1); } int main(void) { is_negative(132); write(1, "\n", 1); is_negative(-132); write(1, "\n", 1); is_negative(0); return (0); } 2023. 10. 15.
반응형