전체 글

전체 글

    [백준 17822: 원판 돌리기] (C++)

    삼성 SW 역량 테스트 https://www.acmicpc.net/workbook/view/1152 ㄴ원판 돌리기 https://www.acmicpc.net/problem/17822 l 문제 1. 중심이 같은 원판들을 주어진 조건에 따라 회전시킨다. 2. 원판 원판은 반지름이 1부터 N까지 크기 순서대로 놓여있다. ( 1이 가장 위 ) 3. 원판의 숫자 각의 원판에는 M개의 정수가 적혀있고, i번째 원판에 적힌 j번째 수의 위치는 (i, j)로 표현한다. ( x, y )는 ( x + 1, y ), ( x - 1, y ), ( x, y -1 ) ,( x, y + 1) 과 인접하다. 간단하게 동서남북 4방향으로 생각하면 된다. 주의할 점 y = 0 일 때 y - 1 위치는 -1이 아닌 M-1로 y = M-1..

    [백준 17779: 게리맨더링 2] (C++)

    삼성 SW 역량테스트 기출 문제 https://www.acmicpc.net/workbook/view/1152 ㄴ게리맨더링 2 https://www.acmicpc.net/problem/17779 l 문제 1. 재현시의 시장 구재현은 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 2. 재현시 는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 3. 선거구, 구역 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다섯 선거구 중 하나에 포함되어야 한다. 선거구는 구역을 적어도 하나 포함해야 하고, 한 선거구에 포함되어 있는 구역은 모두 연결되어 있어야 한다. 구역 A에서 인접한 구역을 통해서 구역 B로 갈 수 있..

    C++ 정렬 알고리즘 (버블정렬, 삽입정렬, 선택정렬, 합병정렬, 퀵정렬, 힙정렬, 셀정렬, 기수정렬)

    본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. 업데이트 중입니다. 버블 정렬( Bubble Sort ) 삽입 정렬( Insertion Sort ) 선택 정렬( Selection Sort ) 합병 정렬( Merge Sort ) 퀵 정렬( Quick Sort ) 힙 정렬( Heap Sort ) 셸 정렬( Shell Sort ) 기수 정렬 ( Radix Sort ) ◾ 제자리 정렬 정렬에 추가적인 메모리 공간이 들지 않는다. 아예 안 드는 것은 아니고 거의 무시할 정도의 메모리를 사용한다. • Insertion, Bubble, Selection, Quick • Tip : 최악이 O(n^2)인 것들이라고 기억 ◾ 안정 정렬 ( Stable Sort ) 정렬 전의 순서를 유지하고 정렬된다. • In..

    [백준 17136: 색종이 붙이기] (C++)

    삼성 A형 기출 문제 https://www.acmicpc.net/workbook/view/2771 ㄴ색종이 붙이기 https://www.acmicpc.net/problem/17136 l 문제 1. 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 2. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 3. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐도 안 된다. 또, 칸의 경계와 일치하게 붙여야 한다. 0이 적힌 칸에는 색종이..

    [백준 17135: 캐슬 디펜스] (C++)

    삼성 A형 기출 문제 https://www.acmicpc.net/workbook/view/2771 ㄴ캐슬 디펜스 https://www.acmicpc.net/problem/17135 l 문제 1. 캐슬 디펜스는 성을 향해 몰려오는 적을 잡는 턴 방식의 게임 2. 게임이 진행되는 곳은 크기가 N×M인 격자판 격자판은 1×1 크기의 칸으로 나누어져 있고, 각 칸에 포함된 적의 수는 최대 하나 격자판의 N번행의 바로 아래(N+1번 행)의 모든 칸에는 성이 있다. 3. 성을 적에게서 지키기 위해 궁수 3명을 배치 궁수는 성이 있는 칸에 배치할 수 있고, 하나의 칸에는 최대 1명의 궁수만 있을 수 있다. 4. 궁수를 배치한 이후의 게임 진행 l 게임 진행 순서 1. 각각의 턴마다 궁수는 적 하나를 공격할 수 있고,..

    [백준 17143: 낚시왕] (C++)

    삼성 SW 역량 테스트 기출 문제 https://www.acmicpc.net/workbook/view/1152 ㄴ낚시왕 https://www.acmicpc.net/problem/17143 l 문제 1. 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. ( R, C )는 가장 오른쪽 아래 칸 2. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 3. 매 초 마다 다음 순서대로 일이 일이 일어난다. l 순서 1. 낚시왕이 오른쪽으로 한 칸 이동한다 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 2. 낚시왕이 있는 열에 있는 상어 중에서 땅과 제일 가까운 상어를 잡는다. 상어를 잡으면 격자판에서 ..

    [백준 17070: 파이프 옮기기 1] (C++)

    [백준 17070: 파이프 옮기기 1] (C++)

    삼성 A형 기출 문제 https://www.acmicpc.net/workbook/view/2771 ㄴ파이프 옮기기 1 https://www.acmicpc.net/problem/17070 l 문제 1. 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸(r, c)은 1부터 시작하며 빈 칸이거나 벽이다. 빈 칸은 0, 벽은 1로 주어진다. 2. 집 수리를 위해서 파이프 하나를 밀어서 이동시키려고 한다. 파이프는 →, ↘, ↓ 방향으로 밀 수 있다. 파이프는 밀면서 45도 까지 회전시킬 수 있으며, (→, ↘, ↓) 3가지 방향이 가능하다. 3. 놓여진 방향에 따라 이동 방법은 다음과 같다. 가로 : →, ↘ 세로 : ↘,..

    [백준 16637: 괄호 추가하기] (C++)

    삼성 A형 기출 문제 https://www.acmicpc.net/workbook/view/2771 ㄴ괄호 추가하기 https://www.acmicpc.net/problem/16637 l 문제 1. 길이가 N인 수식이 있다. 2. 수식(문자열)은 정수로 시작하고, 연산자와 정수 번갈아가며 나온다. 수식에 포함된 정수는 0이상 9이하, 연산자는 +, -, * 중 하나 3. 연산자 우선순위는 모두 동일, 수식 계산을 왼쪽에서부터 순서대로 한다. 3+8×7-9×2의 결과는 136 4. 수식에 괄호를 추가하면, 괄호 안에 들어있는 식은 먼저 계산해야 한다. 단, 괄호 안에는 연산자가 하나만 들어 있어야 한다. 중첩된 괄호는 사용할 수 없다. 추가하는 괄호 수 제한 없다. 추가하지 않아도 됨 5. 항상 올바른 수식..

    [실전 압축 알고리즘] - 실수형을 특정 소수점 까지 출력

    본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. 몇 번째 자리에서 반올림 하여라. 또는 절대/상대 오차가 10^-9까지 허용한다. 이런식으로 주어지는 문제에서는 반드시 조건에 맞게 출력을 해주어야 합니다. 소숫점 9자리 까지 출력한다고 가정하였을 때 printf("%.9lf", a/b); cout > setprecision(8) = 33.14159200 ex) 3.141596 fixed >> setprecision(5) = 3.14160 정리 cout 사용시 n번째 자리 까지 출력해야 한다면 = 절대/상대 오차가 n 이라면 1. 정밀도를 위해 float형 대신 double형 쓰세요 2. fixed >> setprecision(숫자); // (꼭 fixed 를 붙여 자리수 넘어가면 0으로 채우..

    [실전 압축 알고리즘] - C/C++ 문자 숫자 변환

    본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. C 스타일 변환 함수 변환 모습 설명 문자열 -> 숫자 #incldue (stdlib.h) 정수형 atoi, atol, atoll 실수형 atof int atoi (const char* str); "4" -> 4 "123" -> 123 문자열을 숫자로 변환해준다. 다른 형으로는 atof, atol, atoll 이 있다. 숫자 -> 문자열 #incldue (stdlib.h) char * itoa ( int value, char * str, int base ); 5 -> "5" 123 -> "123" value를 base진법으로 변환하여 str에 저장 비표준 함수이기 때문에 MS VS 에서만 가능 표준 호환 대안은 sprintf 일 수 있습니다 ...

    [실전 압축 알고리즘] - 비트 연산

    본 게시글은 실전 기술을 정리해 놓은 '실전 압축' 입니다. Bitwise Operators 연산자 예시 계산 쉬프트 과정 (2진법) 결과 활용 >1 5>>2 12 >> 2 2 * 2^-1 5 * 2^-2 12 * 2^-3 00010 -> 00001 00101 -> 00001 01100 -> 00011 1 1 3 2의 -n승 & (AND) 2 & 1 3 & 1 10 & 01 -> 00 11 & 01 -> 01 0 1 짝수 = 0 홀수 = 1 | (OR) 1 | 1 2 | 1 3 | 1 01 | 01 -> 01 10 | 01 -> 11 11 | 01 -> 11 1 3 3 방문 check ^ (XOR) 5 ^ 6 1 ^ 1 2 ^ 1 00101 ^ 00110 -> 00011 01 ^ 01 -> 00 10 ^..

    C/C++ 궁금한 것 정리

    C++은 C언어에 여러 가지 기능을 추가하거나 개선하여 만들어진 C의 상위 버전 C/C++ 차이점 C C++ 개발 방법 구조적 프로그래밍 객체 지향 프로그래밍 함수에서 변수 선언 함수의 선두에 선언 되어야 함 언제든지 중간에 변수 추가 가능 l C++에서 추가된 기능 내용 설명 범위 연산자 지역변수에 의해 가려진 전역변수 참조 명시적 캐스팅 (int)var가 아닌 int(var) 형식으로 캐스팅 인라인 함수 본체가 호출부에 삽입되는 함수 디폴트 인수 실인수가 생략될 때 형식 인수에 적용되는 기본값 함수 오버로딩 같은 이름의 함수를 여러 개 정의 태그가 타입으로 승격됨 구조체 태그로부터 변수를 바로 선언 가능 이름없는 공용체 공용체 이름없이 멤버들이 기억 장소를 공유 한줄 주석 // 로 줄 끝까지 주석 레..

    객체지향 프로그래밍 (OOP, Object-Oriented Programming)

    OOP l 정의 프로그램을 객체라는 기본 단위로 나누고, 객체들의 상호작용으로 서술하는 방식이다. l 객체란? 현실의 사물을 데이터로 표현하는 방법 하나의 역할을 수행하는 데이터의 묶음 l OOP 특징 특징 구현 방법 설명 추상화 ( Abstraction ) 캡슐화와 정보 은폐 사물들의 공통적 특징을 파악하여 이를 하나의 개념으로 다루는 것 객체의 효율적이고 안전한 사용을 위해 인터페이스를 설계하는 것이다. 캡슐화 ( Encapsulation ) 클래스 캡슐화는 변수와 함수를 하나의 단위로 묶는 것이다. 클래스를 통해 구현되며 해당 클래스의 인스턴스 생성을 통해 변수와 메소드 접근하도록 하는 것 정보 은닉/은폐 ( Information Hiding ) 접근 제한자 외부에서 사용하는 기능만 제공하고 필요 ..

    데이터베이스 (DataBase)

    ※ 데이터베이스 ...더보기 어느 한 조직에서 업무 처리를 위해 다수의 응용 시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 통합, 저장된 운영 데이터의 집합 1. 특징 계속적인 진화 동시 공유 실시간 접근성 내용에 의한 참조 데이터 중복의 최소화 2. 구성 요소 l 개체 (Entity) 사람이 생각하는 개념이나 정보 단위와 같은 현실 세계의 대상체 서로 구별이 되는 하나하나의 대상 하나 이상의 속성 (Attribute)으로 구성 l 속성 (Attribute) 데이터베이스 구축하는 가장 작은 논리적 단위 개체 (Entity)의 특성, 상태를 기술하는 것 l 관계 (Relationship) 두 개 이상의 개체 또는 속성 간의 상호 연관성 관계의 종류 1) 1 : 1(일 대 일) 두 개체 간 구성 원소..

    컴퓨터 네트워크 (Computer Network)

    인터넷 l 저장 후 전달 전송 (Store-and-Forward Transmission) l 서킷 스위칭, 회선 교한 (Circuit Switching) l 패킷 교환 (Packet Switching) l 소켓 인터페이스 l 통신 규약 (Network Protocol) l 패킷 교환 네트워크에서의 전체 노드 지연을 일으키는 각각의 지연 프로토콜 계층 Protocl Layers l 응용 계층 (Application Layer) l 표현 계층 (Presentation Layer) l 세션 계층 (Session Layer) l 전송 계층 (Transport Layer) l ARQ (Automatic Repaet Request) : 자동 재전송 요구, 검출후 재전송 방식 l 적절한 타임 아웃 시간 예측 l 연결..