본문 바로가기
728x90

전체 글240

[C++] 백준 12100번: 2048 (Easy)(삼성SW기출) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 조건 번호가 써져있는 블록 이동시키기 이동하는 방향 젤 앞에 있는 것부터 처리해줌 NxN보드사이즈(1~20) 한쪽 방향으로 이동했을 때 해당방향으로 인접해있으면서 같은 수를 가지고 있어야 합쳐짐 입력: N(1~20) 보드 각 칸의 값(0은 빈칸) 출력: 최대 5회 이동 후 최대값이 가장 큰 수 풀이과정 1. 한쪽으로 밀기 2. 0이 아닌 숫자만 추출 3. 연속된 두 숫.. 2021. 9. 22.
[C++] 백준 13460번: 구슬 탈출2(삼성SW기출) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 조건 보드에 빨간 구슬과 파란 구슬을 하나씩 넣어 빨간 구슬을 구멍으로 빼내는 게임 N(행), M(열) 옵션 -> 왼쪽, 오른쪽, 위쪽, 아래쪽으로 기울이기 가능(라인따라 쭉이동) 빨간 구슬과 파란 구슬이 동시에 구멍에 빠져도 실패(-1) 빨간 구슬과 파란 구슬이 동시에 같은 위치에 있을 수 없음 '.':빈 칸, '#':벽, 'O':구멍, 'R':.. 2021. 9. 19.
[C++] 백준 19237번: 어른 상어(삼성SW기출) https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 조건 번호가 작을 수록 상어가 강력함 NxN 크기의 격자중 M개의 칸에 상어가 한 마리씩 들어있음 1초마다 모든상어가 인접한 상하좌우 칸으로 이동함 이동한 칸에 냄새를 뿌림(k번 이동하면 냄새가 사라짐) 이동할 칸의 우선순위 아무 냄새가 없는 칸 > 자신의 냄새가 있는 칸(인접한 모든 칸이 빈칸이라도 우선순위 적용)) 자신의 냄새 칸이 여러개라면 상어마.. 2021. 9. 18.
[C++] 백준 15684번: 사다리 조작(삼성SW기출) https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 조건 N:세로선 수, H:가로선 후보, M:가로선 개수(미리 놓려질 수) 임의의 가로 선수가 주어졌을 때 가로선을 추가해서, 사다리 결고가 i출발해서 i로 가는 결과를 만들기 그렇게하기 위해 추가해야할 최소 가로선 수 입력 N(2~10), M(0~(N-1)xH), H(1~30) 가로선의 정보는 a b로 나타낸다(b번과 b+1번 세로선을 a번 점선 위치에서 연결) 출력: 가로선 개수의 최솟값을 출.. 2021. 9. 17.
[Database] 04 - 1 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 - 관계 해석(relational calculus) 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어 - 관계 대수(relational algebra) 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 관계 대수는 상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초 관계 대수는 SQL을 구현하고 최적화하기 위해 DBMS의 내부 언어로서도 사용됨 SQL - 상용 관계 DBMS들의 사실상의 표준 질의어인 SQL을 이해하고 사용할 수 있는 능력은 매우 중요함 - 사용자는 SQL을 사용하여 관계 데이터베이스에 릴레이션을 정의하고, 관계 데이터베이스에서 정보를 검색하고, 관계 데이터베이스를 갱신하며, 여러 가지 무.. 2021. 9. 16.
[알고리즘 분석] 02 - 2 합병정렬(mergesort) 합병정렬(mergesort) 문제: n개의 정수를 비내림차순으로 정렬하시오. 입력: 정수 n, 크기가 n인 배열 S[1..n] 출력: 비내림차순으로 정렬된 배열 S[1..n] 보기: 27, 10, 12, 20, 25, 13, 15, 22 합병(merge) 문제: 두 개의 정렬된 배열을 하나의 정렬된 배열로 합병하시오. 입력: (1) 양의 정수 h, m, (2) 정렬된 배열 U[1..h], V[1..m] 출력: U와 V에 있는 키들을 하나의 배열에 정렬한 S[1..h+m] 시간복잡도 분석 합병 알고리즘의 최악의 경우 시간복잡도 분석 단위연산: U[i]와 V[j]의 비교 입력크기: 2개의 입력 배열에 각각 들어 있는 항목의 개수: h와 m 분석: i = h+1이고, j = m인 상태로 루프(loop)에서 빠.. 2021. 9. 16.
[알고리즘 분석] 02 - 1 분할정복법(divide-and-conquer) 분할정복(Divide-and-Conquer)식 설계 전략 분할(Divide): 해결하기 쉽도록 문제를 여러 개의 작은 부분으로 나눈다. 정복(Conquer): 나눈 작은 문제를 각각 해결한다. 통합(Combine): (필요하다면) 해결된 해답을 모은다. 이러한 문제 해결 방법을 하향식(top-down) 접근방법이라고 한다. 이분검색(binary search): 재귀적 방식 - 문제: 크기가 n인 정렬된 배열 S에 x가 있는지를 결정하라. - 입력: 자연수 n, 비내림차순으로 정렬된 배열 S[1..n], 찾고자 하는 항목 x - 출력: location, x가 S의 어디에 있는지의 위치. 만약 x가 S에 없다 면 0 - 설계전략: x가 배열의 중간에 위치하고 있는 항목과 같으면, x 찾음. 그렇 지 않으면:.. 2021. 9. 16.
[MySQL] 문제풀이 문법정리 ANIMAL_OUTS에만 있는 것 조회(ANIMAL_INS에는 ID 부분을 추출) SELECT ANIMAL_ID, NAME FROM ANIMAL_OUTS WHERE ANIMAL_ID NOT IN(SELECT ANIMAL_ID FROM ANIMAL_INS); *주요 문법: NOT IN - where절에서 조건을 추가하여 처리합니다. 두 테이블 비교 후 조건 처리(날짜가 유효하지 않으면 출력) SELECT o.ANIMAL_ID, o.NAME FROM ANIMAL_OUTS o LEFT JOIN ANIMAL_INS i ON o.ANIMAL_ID = i.ANIMAL_ID WHERE o.DATETIME < i.DATETIME ORDER BY i.DATETIME *from 이후 테이블을 left로 보고 left jo.. 2021. 9. 15.
[Database] 02 - 4 무결성 제약조건 데이터 무결성(data integrity) 데이터의 정확성 또는 유효성을 의미 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의함 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없음 도메인 제약조건(domain constraint) 각 애트리뷰트 값이 반드시 원자값이어야 함 애트리뷰트 값의 디폴트 값, 가능한 값들의 범위 등을 지정할 수 있음 데이터 형식을 통해 값들의 유형을 제한하고, CHECK 제약 조건을 통해 값들의 범위를 제한할 수 있음 SQL2는 도메인을 명시적으로 정의하는 것을 허용하지만, 오라클은 지원하지 않음 기본 키와 엔티티 무결성 제약조건(entity integrity constraint).. 2021. 9. 14.
728x90