본문 바로가기

CS55

[Python] 백준 2671 잠수함식별 문제 링크 : https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 1. 접근 방법 우선 정규 표현식도 잘 알지 못했고, 일반적인 문자열 패턴 찾는 방식으로 우선 접근했다. 이후 re 라이브러리를 활용한 정규식 패턴 매칭방식과 문자열 패턴을 확인하여 정답을 구하는 방법 모두 사용해보았다. 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/2000/2600/2671... 2021. 12. 17.
[Python] 백준 5557 1학년 문제 링크 : https://github.com/mintropy/baekjoon_py/blob/master/5000/5557.py GitHub - mintropy/baekjoon_py Contribute to mintropy/baekjoon_py development by creating an account on GitHub. github.com 1. 접근 방법 처음에 문제를 잘못 읽어 해결법을 잘 접근하진 못했다. 문제를 몇차례 읽고, 잘 이해하고는 생각보다 쉬운 DP로 해결했다. 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/5000/5557.py GitHub - mintropy/baekjoon_py Contri.. 2021. 12. 13.
[Python] 백준 1092 배 문제 링크 : https://www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 1. 접근 방법 전형적인 그리디 문제 중 하나라고 생각한다. 해결 방법은 다양하게 고민하기는 했지만, 잘 떠오르지 않아 브루트 포스로 해결했다. 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/1000/1000/1092.py GitHub - mintropy/baekjoon_py C.. 2021. 12. 13.
SQL SQL(Structured Query Language, 구조화 질의어) 관계형 데이터베이스 관리 시스템, RDBMS에서 데이터를 관리하기 위해 설계된 특수 목적 프로그래밍 언어 SQL 명령어는 크게 4가지로 구분 됨 - DDL : 데이터 정의 언어, 데이터베이스 스키마 설명을 처리하는 언어 CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME - DML : 데이터 정의 언어, 데이터 검색, 삽입, 변경, 삭제 SELETE, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE - DCL : 데이터 제어 언어, 데이터 접근할 권한을 관리하는 언어 GRANT, REVOKE - TCL : 트랜잭션 관리 언어 COMMIT, .. 2021. 12. 11.
[Python] 백준 22965 k개의 부분 배열 문제 링크 : https://www.acmicpc.net/problem/22965 22965번: k개의 부분 배열 4 5 6 / 1 2 3으로 나눈 뒤, 1 2 3 / 4 5 6으로 재배열하면 된다. www.acmicpc.net 1. 접근 방법 간단한 정렬 구조를 묻는 문제라 생각했다. 만약 횟수 제한 또는 한 번에 하려면 몇 조각으로 나누어야 하냐는 문제라면 조금 더 까다로울 수도 있었지만, 제한 없이 반복할 수 있어서 3조각으로 나눌 수 있으면 무조건 가능하다. 3조각으로 나누면 한 개씩 잘라내서 원하는 자리에 넣는 작업만 반복해도 된다. 또한 정렬되어 있으면 1이 되는것은 주어진 예제에서도 알 수 있다. 문제는 언제 2번만 가능한지를 구현하는 것이다. 2. 풀이 코드 🖥python 코드 링크 : h.. 2021. 11. 7.
[Python] 백준 20302 민트초코 문제 링크 : https://www.acmicpc.net/problem/20302 20302번: 민트 초코 상원이가 고른 디저트가 “민트 초코”인 경우 mint chocolate, “치약”인 경우 toothpaste를 출력한다. www.acmicpc.net 1. 접근 방법 간단한 소수 찾기 + 소인수 분해 문제라고 생각했다. 과정에서 많은 시간 초과가 났고, 그 이유를 잘 떠올리지 못했는데, 소수 판정에서 가장 간단할 수 있는 부분에서 많은 실수를 했다. 2. 풀이 코드 🖥python 코드 링크 : https://github.com/mintropy/baekjoon_py/blob/master/20000/20302.py GitHub - mintropy/baekjoon_py Contribute to mintr.. 2021. 11. 6.
[Python] 백준 16884 나이트 게임 문제 링크 : https://www.acmicpc.net/problem/16884 1. 접근 방법 모든 경우의 수를 탐색하기에는 너무 경우의 수가 많았다. 최대 10,000이지만, n일 때 결과가 n + 1일 때 결과 및 과정에 직접적인 인과 과정을 찾을 수 없었기 때문에, DP 식의 풀이 과정은 옳지 않다고 생각했다. 만약 각각 과정을 백트레킹으로 계산할 수도 있지만, 최대 100개의 테스트 케이스가 주어지면 불가능할 것이라 생각했다. 2. 풀이 코드 🖥python 코드 : https://github.com/mintropy/baekjoon_py/blob/master/16000/16884.py GitHub - mintropy/baekjoon_py Contribute to mintropy/baekjoon_.. 2021. 11. 6.
[Python] 백준 20166 문자열 지옥에 빠진 호석 문제 링크 : https://www.acmicpc.net/problem/20166 20166번: 문자열 지옥에 빠진 호석 K개의 줄에 걸쳐서, 신이 좋아하는 문자열을 만들 수 있는 경우의 수를 순서대로 출력한다. www.acmicpc.net 1. 접근 방법 범위가 작고, 전체 탐색이 아니라면 딱히 방법이 없을 것 같아, 브루트 포스로 시행했다. 8방향으로, 양 끝이 연결되어 있어 모듈러 연산으로 이동 위치를 구했고, 각 위치에서 신이 좋아하는 문자열에 있는지 확인하는 작업을 했다. 2. 풀이 코드 🖥python 코드 import sys input = sys.stdin.readline def search(string_now: str, x: int, y: int): global n, m, grid, dx, .. 2021. 11. 1.
[Python] 백준 1186 직사각형 색칠하기 문제 링크 : https://www.acmicpc.net/problem/1186 1186번: 직사각형 색칠하기 2차원 좌표 평면에 변이 축에 평행한 직사각형 N개가 있다. 직사각형은 1부터 N까지 번호가 매겨져 있다. i번 직사각형의 왼쪽 아래 꼭짓점의 좌표는 (xi,1, yi,1)이고, 오른쪽 위 꼭짓점의 좌표는 (xi www.acmicpc.net 1. 접근 방법 어떻게든 그리디 한 방법이나, 스위핑 같은 방법을 고민했는데, 여러 직 사각형이 겹치는 경우의 해결 방법이 떠오르지 않아, 전체 탐색을 고민했다. 최대 50개 직사각형을 탐색해서 50 * 50으로 각 직사각형마다 겹치는지 확인할 수 있고, 각 직사각형이 최대로 많이 탐색해도 50 * 8 정도라 생각하여 최대 1,000,000번의 탐색으로 가능.. 2021. 11. 1.