분류 전체보기 408

[프로그래머스] JadenCase 문자열 만들기

def solution(s): words = s.split() blanks = [] for i,value in enumerate(s): if value == ' ': # 공백문자인 경우 if i == 0: # 첫번째 문자인 경우(index error 방지) blanks.append(' ') else: if s[i-1] == ' ': # 연속된 공백문자일 경우 blanks[-1] += ' ' else: blanks.append(' ') def convertWord(string): # JadenCase로 문자열 변환해주는 함수 result = '' for i,value in enumerate(string): if i == 0: if ord('a')

Algorithm/String 2024.01.05

[백준 18808번] 스티커 붙이기

18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net n, m, k = map(int,input().split()) paper = [[0]*m for _ in range(n)] count = 0 for _ in range(k): r,c = map(int,input().split()) sticker = [list(map(int,input().split())) for _ in range(r)] def check_available(paper,x,y,sticker,sticker_row_len,sticker_col_len): ..

[백준 16918번] 봄버맨

16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net r,c,n = map(int,input().split()) area = [list(input()) for _ in range(r)] flag = False dx = [-1,1,0,0] dy = [0,0,-1,1] for i in range(r): # 초기 상태에서 1초 지난 상태로 초기화 for j in range(c): if area[i][j] == "O": area[i][j] = 2 for _ in range(n-1): # n-1초 간 3 ~ 4과정 반복 for i in ran..

[백준 9079번] 동전 게임

9079번: 동전 게임 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 세 줄로 이루어지며, 한 줄에 세 개의 동전모양이 주어지는데, 각각의 동전 표시 사이에는 하나의 공백이 www.acmicpc.net from collections import deque t = int(input()) def reverse_row(area, index): # 행 단위로 동전을 뒤집는 함수 temp = [item[:] for item in area] for i in range(3): if area[index][i] == "H": temp[index][i] = "T" elif area[index][i] == "T": temp[index][i] = "H" return temp ..

[Database] 뷰(VIEW)란 ?

1. 뷰(VIEW) 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 테이블로부터 유도된 가상 테이블 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 2. 뷰의 장단점 뷰의 장점 데이터 조회가 용이하다 (복잡한 쿼리를 단순화) 사용자에게 필요한 정보만 제공할 수 있다 (보안 이점) 물리적인 공간이 필요하지 않다 뷰의 단점 뷰에 인덱스를 구성할 수 없다 뷰를 포함하여 뷰를 만든 경우 연관 뷰를 삭제하면 생성된 뷰도 삭제된다 한번 정의된 뷰는 수정이 불가하다

[Network] OSI 7 계층(Layer)의 개념 및 역할

1. OSI 7 계층이란 ? OSI 7 계층은 국제표준화기구(ISO)에서 정의한 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 네트워크 표준 모델 정보를 송신할 때 각 계층을 지날 때마다 각 계층에서의 Header가 붙게되고 수신측은 역순으로 헤더를 분석하게 된다. OSI 7단계로 정의한 이유는 통신이 일어나는 과정을 단계별로 파악하기 위함과 통신 과정 중에 특정한 곳에 이상이 생길 경우 통신 장애를 일으킨 단계에서 해결할 수 있기 때문이다. 2. OSI 7 계층 구조 2-1. 물리 계층(Physical Layer) OSI 모델의 최하위 계층에 속하며, 데이터를 전기적인 신호로 변환해서 다른 시스템에 전송하는 역할을 수행하는 계층이다. 인터넷 케이블, 라우터, 스위치 등의 전기적 신호가 물리적인 장치..

[백준 5427번] 불

5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net # 상근이는 불이 옮겨진 칸과 불이 붙으려는 칸으로 이동 X # 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다. # 빌딩의 지도가 주어졌을때, 얼마나 빨리 빌딩을 탈출할 수 있는가(최단 시간) # 빌딩을 탈출하는 최단 시간, 불가능하다면 IMPOSSIBLE 출력 from collections import deque t = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] for _ in range(t): w, h = ma..

Algorithm/BFS 2023.12.29

[코딩테스트 문제 풀이 전략] 시간 복잡도 / 시간 복잡도 줄이는 Tip

1. 시간 복잡도란 ? 코드를 실행하면 원하는 기능을 수행하고 종료되기까지 시간이 소요되는데, 이를 더 효율적이고 빠르게 작동시키고 싶다면 어느 알고리즘이 더 효율적인지 비교할 수 있는 '기준'이 필요하다. 문제 해결에 필요한 입력 값과 문제를 해결하는 프로그램이 주어졌을 때, 프로그램이 입력값을 받아 동작하고 결과를 만들어내는데 걸리는 정도를 복잡도라고 한다. 그 중에서 얼마나 시간이 걸리는지는 시간 복잡도로 평가하고, 얼마나 많은 메모리를 사용하는지는 공간 복잡도로 평가한다. 코딩테스트에서는 가장 먼저 제시된 '제한 시간'과 '메모리 사용량'을 확인한 후, 조건에 맞게 실행되도록 자료구조와 알고리즘을 선택하고 문제를 풀어야 한다 ⭐️⭐️⭐️⭐️ 🚨 프로그래머스에서는 특별한 언급이 없다면 제한 시간이 ..

Algorithm 2023.12.28

[코딩테스트 문제 풀이 전략] 코딩테스트 관련 Tip

1. 코딩테스트를 보는 이유 문제 해결 과정을 보기 위해 모든 것의 기초이자, 생각하는 실력을 다지기 위해 똑같은 결과물이라도 더 빠르고 효율적으로 해결하기 위해 2. 코딩테스트를 준비하는 과정 문제를 읽고 스스로 풀어보는 시간을 갖는다. 문제를 모두 풀었다면 과정을 되짚으면서 모범답안을 읽어본다. (문제를 어떻게 이해하고 접근했는지 살펴보고, 본인의 풀이와 어떤 점이 다른지와 어떤 점이 부족했는지 생각할 것) 설명이 이해되지 않는 부분은 체크하고 다시 풀이해본다. 💡 시간 복잡도란 ? 프로그램이 작동하는데 걸리는 시간을 평가하는 척도이자, 특징 크기의 입력에서 수행되는 연산의 횟수 💡 공간 복잡도란 ? 프로그램이 작동하는데 사용되는 메모리의 양을 평가하는 척도 3. 코드를 작성할 때 흔히 하는 실수 존..

Algorithm 2023.12.28