백준사이트에 있는 시뮬레이션 문제 "치즈" 이다. 골드4의 문제이지만 정답률은 53%로 비교적 쉬운 문제에 속한다! https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 시뮬레이션 연습으로 한 번 풀어보기 좋은 것 같다. 접근 방법 이 문제는 가장자리를 어떻게 찾느냐가 관건이었다. 처음에 접근할 때, 상하좌우에 0이 하나라도 있다면 바로 가장자리라고 생각하고 풀었다. 하지만 그렇게 될 경우, 치즈 속 구멍은 처리하지 못한다. 그래서 다른 방식으로 접근했다. - 입력 데..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rT6c4/btrDcU3IvfQ/iEVw8G0wAV1KoKm5mBtSd1/img.png)
문제 접근 방법이 매우매우 수학적이라서 신선하기도 하고... 이걸 못푼 것에 대해 현타도 와서...^^ 충격받은 마음으로 문제 접근 방법을 정리해보고자 한다. 문제는 다음 링크를 클릭하면 확인할 수 있다. 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..
시간초과 나온 코드 완전탐색으로 풀었는데 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..
데이터 개수 셀 때 사용할 수 있는 counter 에 대해서 알아보자. counter는 collections 모듈로부터 import하여 사용한다. [1] 사용 방법 먼저, counter 라이브러리를 사용하기 위해서는 맨 위에 다음 문장을 추가한다. from collections import Counter [2] 사용 예시 만약, 한 문장 안에 단어별로 개수를 센다고 가정해보자. sentence = "helloworld" sentence_dict = {} for s in sentence: if s in sentence_dict.keys(): sentence_dict[s] += 1 else: sentence_dict[s] = 1 # {'h': 1, 'e': 1, 'l': 3, 'o': 2, 'w': 1, '..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bTay9P/btrh5ZQhSiD/SqSNKxK41mlOe2HnUMSNe0/img.png)
해당 문제는 파이썬으로 이미 해결한 코드를 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..
people = int(input()) a, b = map(int, input().split()) M = int(input()) relation = [[] for _ in range(people+1)] for m in range(M): st, en = map(int, input().split()) relation[st].append(en) relation[en].append(st) result = [] def checkRelation(x): if len(relation[x]) == 0: return result.append(x) # 만약 x가 b라면 끝 if x == b: return True for i in relation[x]: if i in result: continue if checkRelatio..
- Total
- Today
- Yesterday
- allauth
- DP
- IPv4
- 백준
- 알고리즘
- Network
- 파이썬
- 인텔리제이
- 코딩테스트
- 다대다매핑
- SQLD
- 코테
- 프로그래머스
- SQL
- 소셜로그인
- 5397
- C++
- 운영체제
- 동적프로그래밍
- 4계층
- 완전탐색
- Python
- cs공부
- 네트워크
- 브루트포스
- OS
- dfs
- intellij
- cs
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |