https://www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.

www.acmicpc.net

- 육각형이 나름 힌트?.... 모양이 보고 숫자를 파악해 보니까

- 다음 칸으로 넘어갈수록 한변에서 하나의 숫자들이 더 더해지고 있었다.

- 즉 계차수열? ..... 느낌.

 

'학부생 공부 > 연습문제(백준)' 카테고리의 다른 글

백준 10773 제로  (0) 2019.11.16
백준 1874 스택수열  (0) 2019.11.14
백준 11650 좌표정렬하기  (0) 2019.11.13
백준 2164 카드2  (0) 2019.11.13
백준 2839 설탕배달  (0) 2019.11.10

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

- 입력받은 점을 x좌표 우선비교 하고 출력( 같을 경우는 y좌표를 비교하여 순서대로 출력)

- 문제는 매우 간단한데 

- int형 vector array를 선언해서 (2차원 배열 느낌)

- 입력받은 x,y 를 arr[x].push_back(y) 를 하여 일단 x값 대로 for문을 돌다가

- size가 1 일경우 -> 그대로 출력[0]번째(arr[i][0])

- size가 2 이상이면 -> 그 vector array를 sort하여(y값 오름차순 정렬) 순서대로 출력

 

@@ 비효율적이다...... 더 컴팩트하게 짤 수있을텐데.. 생각해볼게요.... @@

 

 

'학부생 공부 > 연습문제(백준)' 카테고리의 다른 글

백준 1874 스택수열  (0) 2019.11.14
백준 2292 벌집  (0) 2019.11.13
백준 2164 카드2  (0) 2019.11.13
백준 2839 설탕배달  (0) 2019.11.10
백준 15552 빠른입출력  (0) 2019.11.10

- 파이프 란 ?

 # 간단하게 말하자면 한 프로세스의 출력이 다른 프로세스의 입력으로 들어가서

    두개의 프로세스가 inter-communication 을 하는 것이다.

 # FIFO basis

 # half duplex ( full duplex를 굳이 하자면 가능 하기는 하지만 이를 권고)

    (보내는 쪽은 보내기만, 받는 쪽은 받기만)

 # 공통 부모인 프로세스나 친척들 끼리 파이프를 사용가능 (parent-child뿐만 아니라 child-child도 가능(공통조상에서        파이프를 열였을 경우))

 # 공통조상이 아닌 프로세스들 끼리 파이프와 같은 기능을 사용하고 싶을 때는 FIFO 를 이용

 #  #include<iostream>

     int pipe(int filedes[2]);

 # 프로세스가 파이프를 통해 read를 하려고 하는 경우

     -1. pipe is not empty : read를 하고 즉시 리턴 한다. (리턴값은 읽은 데이터의 바이트 수)

     -2. pipe is empty : read가 block된다. ( write를 통해서 들어올 때까지 기다림)

 # 프로세스가 파이프를 통해 write를 하려고 하는 경우

     -1. pipe is not full : 즉시 write하고 리턴한다.

     -2. pipe is full : 빈(여유)공간이 만들어 질때 까지 block(기다림)

 # 파이프의 한쪽이 closed(닫힌경우)

     -1 . (write 가 닫혔을 때) read의 경우 데이터 파일을 다 읽고 나면 0을 리턴한다.

     -2 . (read 가 닫혔을 때) write의 경우 write를 해도 read할 프로세스가 없다.

          커널이 SIGPIPE라는 시그널을 보낸다.(write를 실행한 프로세스에게)

                (default 값은 죽는것.)

          시그널을 무시하거나 잡아서(catch) 핸들러를 수행하거나 할경우 -1을 리턴하고

          errno을 EPIPE로 셋팅한다.

 

+ Recent posts