백준사이트에 있는 시뮬레이션 문제 "치즈" 이다. 골드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 # ..
https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 실버 1 난이도 문제이다. 예전에는 어렵게 풀었을텐데, 이젠 가볍게 풀려서 뿌듯했다..ㅎㅎ 더 높은 난이도도 가볍게 풀리는 날이 오기를,,, 문제 요약 NxN 지역 안에 높이가 저장되어 있고, h만큼의 비가 올 경우 높이가 h이하의 지역들은 물에 잠기게 된다. 이 때 안 잠기는 지역의 개수를 안전영역이라고 하는데, 이 안전영역의 개수의 최댓값 구해야 하는 문제. 해결 전략 - bfs 활용하여 해결했다. ..
정답코드 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..

해당 문제는 파이썬으로 이미 해결한 코드를 c++로 다시 구현하였다. 파이썬으로 구현한 코드는 아래에서 확인할 수 있다! ㅎㅎ https://thisis-undefined.tistory.com/entry/%EB%B0%B1%EC%A4%80-5397-%ED%82%A4%EB%A1%9C%EA%B1%B0-Python [백준] 5397 키로거 Python 백준의 키로거 문제이다. 해당 문제는 스택으로 구현하였다. left 와 right 라는 2 개의 스택을 만든 뒤 ''일 경우, 오른쪽 원소를 pop하여 left 스 thisis-undefined.tistory.com 👀 주의해야 할 부분 for문에서 i> testcase; while (testcase--) { string str1; cin >> str1; stac..
백준의 키로거 문제이다. 해당 문제는 스택으로 구현하였다. left 와 right 라는 2 개의 스택을 만든 뒤 ''일 경우, 오른쪽 원소를 pop하여 left 스택에 넣었다. '-' 일 경우에는 left 스택에서 원소를 하나 빼주었다. (left 스택의 top 부분이 커서 위치라고 생각하면 된다!) 그 외의 원소들은 left에 추가해준다. 다음은 정답코드이다. import sys def keyLogger(key): pointer = 0 result = "" for k in key: # stack에 값이 있으면서 왼쪽으로 포인터를 이동하는 경우 if result and k == "": if pointer >= len(result): continue pointer += 1 elif len(result) =..

문자열을 순회하다가 폭발 문자열이 발견되면 폭발시키고 뒤에 남은 문자열을 이어붙여준다. 이어붙이면서 폭발 문자열이 또 발생될 경우, 다시 폭발시키고 이어붙여준다. 정말 여러 방법으로 접근했지만, 계속되는 시간초과 문제로 .....😢 구글링을 통해 스택으로 간단하게 풀 수 있다는 것을 알게 되었다. 😂 스택으로 접근한 풀이이다. 일단 문자열을 순회하면서 스택에 넣어준다. 그러다가 폭발 문자열의 끝값과 같은 문자가 발견되면 폭발 문자열 길이 만큼 스택 top부터 가져와서 비교한다. 만약 같은 문자열이면 폭발 문자열만큼 스택에서 pop을 시켜준다. 결국 스택에 남은 문자들을 합한 것이 남아있는 문자열이다. 정답코드 total = list(input()) pang = input() stack = [] for i..

두 개의 동전이 있고, 보드가 있을 때 두 개의 동전 중 하나만 떨어지면서 그 때의 최소 count를 구하는 문제이다. 문제 접근 BFS로 접근하였고, 다음 3가지만 고려하였다. 1. 두 개의 동전이 모두 안 떨어진 경우 2. 두 개의 동전이 모두 떨어진 경우 3. 한 개의 동전만 떨어진 경우 남 -> 동 -> 북 -> 서 순으로 이동하였고, 1번 경우에는 다음 가고자 하는 위치가 벽인 경우만 고려해주었다. 2번 경우에는 count를 할 필요가 없기 때문에 pass 하였다. 3번인 경우 현재 최소 count와 현재까지의 count를 비교하여서 최소값을 구하였다. 정답 코드 from collections import deque rows, cols = map(int, input().split()) BRD =..
- Total
- Today
- Yesterday
- intellij
- 다대다매핑
- 코테
- IPv4
- 운영체제
- 완전탐색
- dfs
- DP
- 인텔리제이
- cs공부
- 소셜로그인
- 네트워크
- BFS
- SQL
- 4계층
- 코딩테스트
- allauth
- 동적프로그래밍
- OS
- cs
- 5397
- C++
- Python
- 프로그래머스
- 브루트포스
- 파이썬
- SQLD
- Network
- 백준
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |