본문 바로가기

코딩 테스트 & 문제 해결

(10)
[BOJ] [python] 1764: 듣보잡 -해시 테이블과 시간복잡도 문제 풀이문제 자체는 어렵지 않아서 보이는 대로 코드를 작성했다.N, M = map(int, input().split())dictN = []result = []for _ in range(N): dictN.append(input())for _ in range(M): x = input() if x in dictN: result.append(x)result.sort()print(len(result))for y in result: print(y) dictN에 '듣도 못한 사람'의 리스트를 저장하고해당 리스트에 없는 '보도 못한 사람'을 result에 저장하면서 result 자체가 '듣도 보도 못한 사람'이 되도록 했다. 그런데 이렇게만 했더니 시간초과가 떴다. 트러블 슈팅: 해..
[BOJ] [python] 14719: 빗물 Idea먼저 2차원 공간 틀을 만들어줬다.초기 입력값에 따라 블럭을 생성해주고 각 행의 값들을 스택에 넣어서 앙옆에 블럭이 있다면 사잇값들을 O로 바꿔주고 다음 행으로 넘어가는 식으로 빗물 총량을 계산하려 했는데.. 트러블 슈팅1: 동일한 리스트 객체로 2차원 공간 초기화space = list(map(int,input().split()))blockHeights=list(map(int, input().split()))flag=[]for _ in range(space[1]): flag.append("X")for _ in range(space[0]): block.append(flag)print(block) # 2차원 세계 틀 만들기 idx=0print("blockHeights: ",block..
[BOJ] [python] 2504: 괄호의 값 Idea입력 문자열을 왼쪽부터 읽어나간다.arr: 입력 문자열stack: 계산을 위해 문자열의 문자 하나하나를 append혹은 pop한다.tmp: 현재 계산중인 값answer: 최종 답열린 괄호 (,[ 는 스택에 append하고 닫힌 괄호 ),] 는 pop을 진행한다.( 를 만나면 tmp에 2를 곱하고 [ 를 만나면 tmp에 3을 곱한다.현재 진행중인 곱하기 과정이 끝나면 tmp값을 answer에 더하고 tmp를 2 혹은 3으로 나눈다.  트러블슈팅1: pop타이밍arr = input()stack = []tmp=1answer=0for i in range(len(arr)): if arr[i] =='(': stack.append(arr[i]) tmp*=2 # print(tmp) elif ..
[BOJ] [python] 14888: 연산자 끼워넣기 Idea주어진 수열과 각 사칙 연산의 가능한 횟수를 입력 받아, 모든 가능한 경우의 수를 탐색하며 최대값과 최소값을 갱신하는 깊이 우선 탐색(DFS) 기법을 사용한다. 입력 :N: 수열의 길이num_arr: 수열의 요소들add, sub, mul, div: 각각 더하기, 빼기, 곱하기, 나누기 연산을 수행할 수 있는 횟수초기 설정:maximun을 매우 작은 수로 설정하여 결과 중 최대값을 저장minimum을 매우 큰 수로 설정하여 결과 중 최소값을 저장첫 번째 숫자를 결과로 초기화하고, dfs 함수를 첫 번째 요소 다음 인덱스에서 시작 import sysdef dfs(depth, result, add, sub, mul, div): global maximun, minimum if depth == N: ..
[준랩] [python] 1082: 특정 대문자를 소문자로 바꾸기 어려운 문제는 아닌데 저번과 같은 실수를 해서 정리해놓는다. 코드1오류1: 문자열은 Python에서 불변 객체(immutable)def solution(A,B): B=list(map(str,B.split())) idx=0 for i in A: if i in B: print(i) A[idx].lower() # 이렇게 해봤자 A는 안 바뀐다. idx+=1 return AA=input()B=input()print(solution(A,B)) string.lower() 함수는 string의 모든 알파벳들을 소문자로 바꾼 문자열을 반환한다.예를 들어 s1 = "PYTHON" 라는 문자열이 있다고하면 s1.lower() 라는 함수를..
[BOJ] [python] 2941: 크로아티아 알파벳 코드1오류1: 문자열은 Python에서 불변 객체(immutable)croba=['c=','c-','dz=','d-','lj','nj','s=','z=']word=input()answer=0for x in croba: if str(x) in word: word.replace(str(x),'') answer+=1print(word)print(answer) ljes=njak3 croba=['c=','c-','dz=','d-','lj','nj','s=','z=']word=input()answer=0for x in croba: if str(x) in word: print(str(x)) new_word=word.replace(str(x),'') ..
Python으로 티스토리 제목 크롤링 및 카테고리 분류하기 나는 정리같은걸 워낙 못하는 사람이기에.. 블로그 글도 카테고리 분류가 매우 안 된 상태였다.그때그때 적은 내용을 바탕으로 대충 분류해놨더니 내가 보기에도 너무 어지러워서 각잡고 정리를 하기로 마음먹었다. 이왕 하는거 내 게시글 목록을 크롤링 해와서 gpt한테 카테고리 분류를 시켜보면 어떨까?해서 시작한 미니미니 플젝이다. 크롤링크롤링(Crawling)이란 웹 크롤러(Web Crawler) 또는 스파이더(Spider)라고 불리는 자동화된 프로그램을 사용하여 인터넷 상의 웹 페이지를 체계적으로 탐색하고, 그 내용을 수집하는 작업을 의미한다.  맥 기준,보기 > 개발자 정보 > 개발자 도구 를 클릭하면 이렇게 게시글의 제목이 적혀 있는 HTML 태그를 찾을 수 있다. 이렇게 Copy selector 부분을 ..
Programmers -코딩테스트 연습>코딩 기초 트레이닝>수 조작하기 1 풀이1)def solution(n, control): for i in control: if i=='w': n+=1 elif i=='s': n-=1 elif i=='d': n+=10 else: n-=10 return n 누구나 생각할 법한 정석대로 풀었다.비교대상이 w,a,s,d로 모두 다르고 n값이 바뀌는 것도 달랐기에 다른 방법이 더이상 떠오르지 않았다.   풀이2)def solution(n, control): answer = n c = { 'w':1, 's':-1, 'd':10, 'a':-10} for i in control: ..