백준사이트에 있는 시뮬레이션 문제 "치즈" 이다. 골드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 # ..
정답코드 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..
파이썬에서 모든 조합을 구하기 위해서 제공하는 라이브러리가 있다. product, permutations, combinations 각각의 용도와 사용 방법에 대해서 알아보자. [1] 사용법 먼저, 해당 라이브러리를 사용하기 위해 다음 문장을 추가해주자. from itertools import combinations from itertools import permutations from itertools import product [2] 사용 예시 permutations, combinations - 하나의 리스트로부터 조합을 구할 때 - 순열 lst = ['a', 'b', 'c', 'd', 'e'] print(list(permutations(lst, 2))) # [('a', 'b'), ('a', 'c'),..
데이터 개수 셀 때 사용할 수 있는 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, '..
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
- SQL
- 다대다매핑
- IPv4
- Python
- 4계층
- 네트워크
- 파이썬
- 알고리즘
- 브루트포스
- BFS
- 프로그래머스
- C++
- 동적프로그래밍
- OS
- 코딩테스트
- allauth
- cs공부
- Network
- 완전탐색
- 운영체제
- 코테
- 소셜로그인
- 백준
- 5397
- cs
- intellij
- dfs
- 인텔리제이
- DP
- SQLD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |