본문 바로가기

분류 전체보기153

[Python] 백준 (1, 2, 3 더하기) 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 3 4 7 10 예제 출력 1 7 44 274 풀이방법 점화식을 추론하자 A1 A2 A3 A4 1 1+ A(1) -> (A1) = 1가지 1+(A2) -> (A.. 2021. 10. 25.
[Python] 백준 (다리놓기) DP, 조합 문제풀이 조금 생각하다 보니 조합 문제임을 알 수 있었다. n < m 이기 때문에 최대 연결할 수 있는 다리는 n개 이다. m개 지역에 n개의 다리를 연결하는 경우의 수 조합: 집합에서 서로 다른 n개의 원소 중에서 순서에 상관없이 r개를 선택하는 것이다. mCn이 만들어짐 itertools의 combinations를 쓰면 제한시간(0.5초)에 걸려 해결 할 수 없음 직접 만들어쓰자..! 분자 denominator은 m*(m-1)*(m-2)*...*(m-n) 까지의 값 분모 numerator은 n! import sys T = int(sys.stdin.readline().rstrip()) answer = [] for i in range(T): denominator = 1 numerator = 1 N, M .. 2021. 10. 25.
[Python] 백준 (후위 표기식) 1918 문제 수식은 일반적으로 3가지 표기법으로 표현할 수 있다. 연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), 연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. 예를 들어 중위 표기법으로 표현된 a+b는 전위 표기법으로는 +ab이고, 후위 표기법으로는 ab+가 된다. 이 문제에서 우리가 다룰 표기법은 후위 표기법이다. 후위 표기법은 위에서 말한 법과 같이 연산자가 피연산자 뒤에 위치하는 방법이다. 이 방법의 장점은 다음과 같다. 우리가 흔히 쓰는 중위 표기식 같은 경우에는 덧셈과 곱셈의 우선순위에 차이가 있어 왼쪽부터 차례로 계산할 수 없지만 후위 표기식을 사.. 2021. 10. 24.
[Python] 백준 (움직이는 미로 탈출) 16954 문제 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 윗 칸으로 이동해야 한다. 이 게임의 특징은 벽이 움직인다는 점이다. 1초마다 모든 벽이 아래에 있는 행으로 한 칸씩 내려가고, 가장 아래에 있어서 아래에 행이 없다면 벽이 사라지게 된다. 욱제의 캐릭터는 1초에 인접한 한 칸 또는 대각선 방향으로 인접한 한 칸으로 이동하거나, 현재 위치에 서 있을 수 있다. 이동할 때는 빈 칸으로만 이동할 수 있다. 1초 동안 욱제의 캐릭터가 먼저 이동하고, 그 다음 벽이 이동한다. 벽이 캐릭터가 있는 칸으로 이동하면 더 이상 캐릭터는 이동할 수 없다. 욱제의 캐릭터가 가장.. 2021. 10. 24.
[13] 소프트웨어 개발 보안 구축 (소프트웨어 개발 보안 설계) SW개발 보안의 3대 요소 (기/무/가) 3대 요소 설명 기밀성(Confidentiality) 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 무결성(Integrity) 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 가용성(Avaliaility) 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성 SW개발 보안 용어 (자/위/취/위) 자산(Assets): 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상(예: 서버의 하드웨어, 기업의 중요 데이터) 위협(Threat): 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나.. 2021. 10. 12.
[12] 서버 프로그램 구현 (개발 환경, 형상 관리, 모듈) 개발 도구의 분류 (빌/구/테/형) 빌드 도구: 작성한 코드의 빌드 및 배포를 수행하는 도구 구현 도구: 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구 테스트 도구: 코드의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구 형상 관리 도구: 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구 서버 하드웨어 개발환경 구분 설명 웹 서버 HTTP를 이용한 요청/응답을 처리 웹 상의 정적 콘텐츠(CSS, Javascript, Image)를 처리 웹 애플리케이션 서버 동적 콘텐츠(Servlet, JSP)를 처리하기 위해 사용 주요 제품으로 Tomcat, Weblogic, Jeus, Resin 등 존재 데이터베이스 서버 데이터의 수집, 저장을 위한 용도로 사용 연계되.. 2021. 10. 10.
[Python] 백준 BOJ 1260 (DFS와 BFS) deque 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. .. 2021. 10. 9.
[11-1] 절차형 SQL 절차형 SQL: 절차형 SQL이란? 일반적인 개발 언어처럼 SQL언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어이다. 절차형 SQL 종류 프로시저(Procedure): 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 사용자 정의함수(User-Definde Function): 일련의 SQL처리를 수행하고, 수행결과를 단일 값으로 반환할 수 있는 절차형 SQL 트리거(Trigger): 데이터베이스 시스템에서 삽입, 삭제, 갱신 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL 프로시저의 구성 (디비컨SET) 선언부(DECLARE): 프로세스의 명칭, 변수와 인수 그리고 그에 대한 데이터 타입을 정의하는 부분 시작/종료부(BEGIN/END): 프로시저의.. 2021. 10. 9.
[11] SQL응용 -데이터베이스의 기본 (DDL, DML, DCL) 트랜잭션(Transaction): 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다. 트랙잭션 특성 (A/C/I/D) 특성 설명 주요기법 원자성(Atomicity) 분해가 불가능한 작업의 최소단위 연산 전체가 성공 또는 실패 하나라도 실패할 경우 전체가 취소되어야 하는 특성 Commit/Rollback 회복성 보장 일관성(Consistency) 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 하는 특성 무결성 제약조건 동시성 제어 격리성(Isolation) 트랜잭션이 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가능한 특성 Read Uncommit.. 2021. 10. 8.
[Python] 프로그래머스 (숫자의 표현) 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항 n은 10,000 이하의 자연수 입니다. 입출력 예 n result 15 4 입출력 예 설명 입출력 예#1 문제의 예시와 같습니다. 풀이방법 완전탐색 연속된 숫자로 n이 만들어지는지를 판별하는 함수를 만든다(checkFinn) 처음은 1부터 n .. 2021. 10. 7.
[10] 프로그래밍 언어 활용 ,포인터, 오버로딩, 오버라이딩 포인터(Pointer) 변수의 주솟값을 저장하는 공간이다. int a = 10; int*b = &a; //*b는 데이터가 들어갈 공간 //&a는 주솟값 데이터 타입 뒤에 *를 붙이면 주소를 저장하는 포인터 변수라는 의미이고, 일반 변수명에 &를 붙이면 해당 변수명의 주소값이다. 주소에 해당하는 값을 가리킬 때에는 *를 사용한다. int a = 10; int* b = &a; printf("%d %d", a, *b);//b가 가리키는(*) 값은 a이므로 *b == a이다 //&a는 주솟값 포인터 선언시 *의 위치는 관계 없음(int*a, int *a, int * a) 자바 자료형 HashSet: 중복된 원소를 허용하지 않는 집합(Set)의 성질을 가진 클래스; 순서가 중요하지 않음 ArrayList: 크기가.. 2021. 10. 6.
[9] 인터페이스 구현 인터페이스 산출물: 인터페이스는 크게 사용자 인터페이스(User Interface)와 시스템 인터페이스(System Interface)로 구분된다. 소프트웨어 개발 단계별 인터페이스 산출물 구분 설명 분석 단계 인터페이스 요구사항을 통한 인터페이스 정의서 작성 명세 단계 인터페이스 정의서에 따라 인터페이스 명세서 작성 설계 단계 인터페이스 명세에 따라 설계 단계를 통해 구체적인 인터페이스 설계서 작성 상세 기능별 인터페이스 명세서 주요 항목 (아/명/오/개/ 전/후/파/반) 주요 항목 설명 인터페이스 ID 인터페이스를 구분하기 위한 식별자 인터페이스 명 해당 인터페이스를 나타내는 고유 명칭 오퍼레이션 명 해당 인터페이스의 세부 동작 명칭 오퍼레이션 개요 해당 인터페이스의 세부 동작 프로세스에 대한 세부 .. 2021. 10. 4.