백준사이트에 있는 시뮬레이션 문제 "치즈" 이다. 골드4의 문제이지만 정답률은 53%로 비교적 쉬운 문제에 속한다! https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 시뮬레이션 연습으로 한 번 풀어보기 좋은 것 같다. 접근 방법 이 문제는 가장자리를 어떻게 찾느냐가 관건이었다. 처음에 접근할 때, 상하좌우에 0이 하나라도 있다면 바로 가장자리라고 생각하고 풀었다. 하지만 그렇게 될 경우, 치즈 속 구멍은 처리하지 못한다. 그래서 다른 방식으로 접근했다. - 입력 데..

문제 접근 방법이 매우매우 수학적이라서 신선하기도 하고... 이걸 못푼 것에 대해 현타도 와서...^^ 충격받은 마음으로 문제 접근 방법을 정리해보고자 한다. 문제는 다음 링크를 클릭하면 확인할 수 있다. https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 첫 번째 접근 방법 import math def solution(w,h): total = w * h # 가로: w, 세로: h # ..
멱등성이란? 멱등성(idempotent)이란 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. 이 멱등성을 HTTP Method에 적용시켜보면, 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 가지고, 서버의 상태도 동일할 때 해당 HTTP Method가 멱등성을 가진다고 한다. 그러면, 이 멱등성과 REST API와 무슨 상관이 있을까? REST API REST API란, HTTP URI를 통해 자원(Resource)를 명시하고, HTTP Method를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다. REST API 에서 주로 사용하는 HTTP Method가 있다. ..
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 골드 4 난이도 문제이다. 문제 요약 RxC 보드에는 대문자 알파벳이 하나씩 적혀있으며, (0,0) 에서 출발했을 때 말이 가장 많이 갈 수 있는 경로의 길이를 구하는 것이다. 그 경로에는 알파벳이 중복되어서는 안된다. 해결 전략 - dfs 로 해결하였다. - 알파벳 중복을 막기 위해서 길이가 26인 0으로 채워진 배열을 만든 뒤, ord(현재 알파벳) - ord('A') 로 현재 알파벳을..
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 실버 1 난이도 문제이다. 예전에는 어렵게 풀었을텐데, 이젠 가볍게 풀려서 뿌듯했다..ㅎㅎ 더 높은 난이도도 가볍게 풀리는 날이 오기를,,, 문제 요약 NxN 지역 안에 높이가 저장되어 있고, h만큼의 비가 올 경우 높이가 h이하의 지역들은 물에 잠기게 된다. 이 때 안 잠기는 지역의 개수를 안전영역이라고 하는데, 이 안전영역의 개수의 최댓값 구해야 하는 문제. 해결 전략 - bfs 활용하여 해결했다. ..
정답코드 N, M = map(int, input().split()) BRD = [] for n in range(N): BRD.append(list(input())) count = 0xffffffff for i in range(N-8+1): for j in range(M-8+1): # W로 시작하는 경우 countW = 0 # B로 시작하는 경우 countB = 0 for x in range(i, i+8): for y in range(j, j+8): # x+y가 홀수일 경우 시작점과 달라야한다. if (x+y) % 2: if BRD[x][y] == 'W': # W일 경우 시작점이 W일 때 문제가 됨 countW += 1 elif BRD[x][y] == 'B': countB += 1 else: if BRD[..
정답코드 def solution(msg): # 1. 계속해서 문자열을 만든다. # 2. 만든 문자열이 dict에 있다면 idx만 1 추가해주고 pass # 3. dict에 없다면 마지막 문자 제외한 문자는 있는 것이므로 해당하는 idx 추가하고 pass answer = [] Dict = {chr(64 + i) : i for i in range(1, 27)} idx = 0 search = "" baseNumber = 27 while idx < len(msg): # search 업데이트 search += msg[idx] print(search) if search in Dict: idx += 1 else: # Dict에 정보 추가 Dict[search] = baseNumber baseNumber += 1 an..
시간초과 나온 코드 완전탐색으로 풀었는데 4중 for문일뿐만 아니라 combination한 것을 모두 돌다보니 시간초과가 난 것 같다. from itertools import combinations N, k = map(int, input().split()) words = [] mustKnow = ['a', 'n', 't', 'i', 'c'] # k = k - len(mustKnow) for n in range(N): words.append(input()) def findMaxCnt(words): # 1. 조합으로 words 개수부터 1개까지 for문 돌면서 for w in range(len(words), 0, -1): # 2. 구한 조합이 k개 미만으로 구할 수 있는지 확인 for combi in com..
- Total
- Today
- Yesterday
- Python
- 코테
- OS
- cs
- intellij
- 백준
- 동적프로그래밍
- 소셜로그인
- 네트워크
- 다대다매핑
- SQLD
- allauth
- 프로그래머스
- 5397
- dfs
- BFS
- 4계층
- cs공부
- 브루트포스
- 알고리즘
- 파이썬
- Network
- 완전탐색
- 운영체제
- 코딩테스트
- SQL
- 인텔리제이
- C++
- DP
- IPv4
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |