본문 바로가기

전체 글

(8)
백준 14890번 경사로 문제 링크 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 알고리즘 분류 시뮬레이션 풀이 문제의 조건에 맞게 경사로를 설치해주는 시뮬레이션 문제입니다. 고려해야할 조건은 다음과 같습니다. 1. 경사로를 설치하는 곳의 낮은칸과 높은칸의 높이차는 1이어야 합니다. 2. L개의 블록이 연속되어야 합니다. 3. 경사로가 이미 설치된 곳은 경사로를 설치 할 수 없습니다. 이러한 조건을 행과 열을 검사하는 함수를 따로 만들어서 문제를 해결했습니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..
백준 14503 로봇 청소기 문제 링크 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 문제 유형 시뮬레이션 풀이 문제의 조건대로 구현해주면 되는 시뮬레이션 문제입니다. 청소한 곳은 map의 값을 2, 청소가 안된 빈 곳은 0, 벽은 1로 표현했습니다. 1. 현재 위치를 청..
백준 15662번 톱니바퀴 (2) 문제링크 15662번: 톱니바퀴 (2) 총 8개의 톱니를 가지고 있는 톱니바퀴 T개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, ..., 가장 오른쪽 톱니바퀴는 T번이다. 아래 그림은 T가 4인 경우이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. 톱니바퀴의 회전은 한 칸을 기준으로 한다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다 www.acmicpc.net 알고리즘 분류 시뮬레이션 풀이 백준 14891 톱니바퀴와 같은 유형의 문제로 이번 문제에선 톱니바퀴의 갯수가 정해져 있지 않다. 풀이 방법은 동일하다. 위의 태그를 참조. 코드 1 2 ..
백준 14891번 톱니바퀴 문제 링크 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. 톱니바퀴의 회전은 한 칸을 기준으로 한다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴를 회전시키려 www.acmicpc.net 알고리즘 분류 시뮬레이션 풀이 맞닿은 극이 서로 다른 경우의 회전을 하게 되는 경우 맞닿은 톱니바퀴에서 다시 회전이 일어나게 되는데 재귀함수를 통해 문제를 해결했습니다. 톱니바퀴를 왼쪽 끝,..
백준 14499번 주사위 굴리기 문제 링크 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net 알고리즘 분류 시뮬레이션 풀이 문제에 나와있는 모든 조건을 구현해야 하는 시뮬레이션 문제입니다. 동,서,남,북 이동 방향에 따라 주사위의 면을 옮겨주는 함수를 구현하고, 조건에 맞춰 이..
개발자 기술면접 #3 - 네트워크 IP에 대해 설명하시오. 브리지, 허브, 스위치 및 라우터에 대해 설명하시오. 패킷에 대해 설명하시오. 다음 통신 오류 검출 방식에 대해 설명하시오. 1) 패리티 비트 검사 2) 블록 합 검사 3) 순환 중복 검사 유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트에 대해 설명하시오. 동기식통신과 비동기식통신의 차이점에 대해서 설명하시오. HTTP와 프로토콜에 대해 설명하시오. HTTP와 HTTPS의 차이에 대해 설명하시오. HTTP Request 방식 중 GET과 POST의 차이에 대해 설명하시오. GET방식의 URL을 통해서 데이터를 전달 시 보안성 취약 해결방법은 무엇인가? OSI 7 Layer와 각 계층에 대해 설명하시오. TCP/IP 프로토콜 스택 4계층으로 구분짓고 설명하시오. TCP에 대해 설..
개발자 기술면접 #2 - 자료구조 배열(array)에 대해 설명하시오. 가장 기본적인 자료구조인 Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치한다. 따라서 인덱스(index)로 해당 원소(element)에 접근할 수 있다. 그렇기 때문에 찾고자 하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근할 수 있다. 즉 random access 가 가능하다는 장점이 있는 것이다. 하지만 삭제 또는 삽입의 과정에서는 해당 원소에 접근하여 작업을 완료한 뒤(O(1)), 또 한 가지의 작업을 추가적으로 해줘야 하기 때문에, 시간이 더 걸린다. 만약 배열의 원소 중 어느 원소를 삭제했다고 했을 때, 배열의 연속적인 특징이 깨지게 된다. 즉 빈 공간이 생기는 것이다. 따라서 삭제한 원소보다 큰 인덱스를 갖는 원소..
개발자 기술면접 #1 - 운영체제 프로세스에 대해 설명하시오. 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 한다. 구체적으로 살펴보면 프로세스는 함수의 매개변수, 복귀 주소와 로컬 변수와 같은 임시 자료를 갖는 프로세스 스택과 전역 변수들을 수록하는 데이터 섹션을 포함한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 스레드에 대해 설명하시오. 스레드는 프로세스의 실행 단위라고 할 수 있다. 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소 공간이나 자원을 공유할 수 있다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리..