코딩 도구(326)
-
파이프, 프로세스 생성, 파일 디스크립터 복제 등의 개념
파이프, 프로세스 생성, 파일 디스크립터 복제 등의 개념 C언어로 파이프 및 포크 예제 확인 부모 프로세스와 자식 프로세스 간의 파이프와 포크를 기반으로하는 응용 프로그램을 확인해요. 부모 프로세스는 파이프로부터 텍스트 데이터를 읽고, 31바이트씩 읽어 나가며 파이프가 닫힐 때까지 데이터를 출력하죠. 이전 예제와 유사하지만, 부모가 읽는 역할을 하고 자식이 쓰는 역할을 하는 차이가 있어요. 부모 프로세스는 쓰기 파이프를 닫고 텍스트 데이터를 읽는데 그때까지 데이터를 출력하며, 이는 이전 예제와 동일하죠. 프로세스 복제 동작 설명 이 예시에서 다른 점은 자식 프로세스에 있어요. 자식 프로세스를 확인해요. 그 이후에 파운드를 받침 시킨 다음, 자식 프로그램이 실행돼요. 이 작업은 복제 작업을 호출하는 거예요..
2024.04.09 -
백준 11650 파이썬 lambda
백준 11650 - 좌표 정렬하기 문제 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 답안 코드 : n = int(input()) points = [] for _ in range(n): x, y = map(int, input().split()) points.append((x, y)) # 정렬하기 points.sort(key=lambda point: (point[0], point[1])) f..
2024.04.09 -
'파이프'를 이용한 프로세스간 통신 메커니즘
'파이프'를 이용한 프로세스간 통신 메커니즘 C 언어에서 파이프 구현? 파이프 메커니즘은 우선 예시를 통해 배우는데, main 함수에서 파이프를 생성하는 연산을 살펴봐요. 이 연산은 파이프를 생성하고 파이프를 가리키는 포인터를 전달해요. 읽기 작업 시 0이 아닌 값을 반환하면 오류가 발생했음을 나타낸답니다. 시스템 API는 주로 반환 값으로 오류 여부를 나타냅니다. 파이프는 프로세스 간 통신을 위한 메커니즘이며, 이러한 커뮤니케이션 방식은 파일을 통해 이루어집니다. 파이프의 사용된 문맥을 보면, 파일을 통해 부모 프로세스와 자식 프로세스 간에 데이터를 전달하고 통신하는 방법을 설명하고 있습니다. 전체적인 문맥으로 볼 때, 이 내용은 '파이프'라는 용어가 프로세스 간 데이터 교환을 위해 사용되는 특정한 메..
2024.04.08 -
백준 1427 파이썬 예시
백준 1427 - 소트인사이드 문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 코드 : N = input() digits = [int(digit) for digit in str(N)] sorted_digits = sorted(digits, reverse=True) # 정렬된 자리수를 합쳐서 결과 출력 result = int("".join(map(str, sorted_digits))) # 문자열들을join함수를 사용하여 하나의 문자열로 print(result) 백준 / 문제 / 단계별로 풀어보기 / 13단계 정렬 생각 :..
2024.04.08 -
프로세스 간 통신과 시그널 처리
프로세스 간 통신과 시그널 처리 프로그램 대기 및 실행 흐름 확인 방법? CNRS 트리를 살펴보면, 한번에 두 번 실행해야 하는 경우가 있어요. 이때는 종료 신호를 두 조각으로 나눌 수 있어요. 시그널 넘버 쓰리의 소스 코드를 보면, sig int 대신에 term에 핸들러를 등록한 것을 알 수 있어요. 이것은 종료를 위한 신호인데, 핸들러를 등록하고 많은 함수가 스캐너로 이동하고 정수가 올 때까지 기다리는 방식이에요. 사용자로부터 명령이 올 때까지 프로그램이 대기하도록 하는 것이죠. 시그널 핸들링의 기능은 무엇인가요? 시그널이 발생하면 핸들러 기능에서 작업을 생성할지 물어봐요. 프로세스 목록을 나열하고, 시그널을 받는 것을 확인할 수 있죠. 시그널을 받으면 작업 종료 여부를 물을 수 있고, 사용자가 종료..
2024.04.07 -
백준 10989 파이썬 메모리와 시간 초과 sort를 쓰지 않고 intput 대신 int(sys.stdin.readline())
백준 10989 - 수 정렬하기 3 문제 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 답안 코드 : import sys N = int(sys.stdin.readline()) # 아이디어는 수를 입력받으면서 바로 해당 위치에 출력 x = [0] * 10001 for _ in range(N): num = int(sys.stdin.readline()) x[num] += 1 # 횟수를 기록 # 해당 수의 등장 횟수만큼 출력 for i in range(10001): i..
2024.04.07