본문 바로가기

Algorithm/Baekjoon52

[백준] 그룹 단어 체커 / 1316번 / 파이썬 / Python 🎫code ) cnt = 0 for i in range(int(input())): word = input() word_lst = [word[0]] for k in range(1, len(word)): if word[k] != word[k - 1]: word_lst.append(word[k]) word_set = set(word_lst) if len(word_lst) == len(word_set): cnt += 1 print(cnt) 📌 description ) 문제출처 : www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두.. 2020. 11. 29.
[백준] 유기농배추 / 1012번 / 파이썬 / Python 🎫code ) for tc in range(1,int(input())+1): m, n, k = map(int,input().split()) arr = [[0]*m for _ in range(n)] stack = [] cnt = 0 dx = [-1,1,0,0] dy = [0,0,-1,1] for i in range(k): y, x = map(int,input().split()) arr[x][y] = 1 for i in range(m): for j in range(n): if arr[j][i] == 1: stack.append((j,i)) while stack: x, y = stack.pop() arr[x][y] = 2 for k in range(4): nx, ny = x+dx[k], y+dy[k] if 0 2020. 11. 28.
[백준] LCS / 9251번 / 파이썬 / Python / 최장 공통 부분수열 🎫code ) s1 = input() s2 = input() matrix = [[0] * (len(s2) + 1) for _ in range(len(s1) + 1)] for i in range(1, len(s1) + 1): for j in range(1, len(s2) + 1): if s1[i - 1] == s2[j - 1]: matrix[i][j] = matrix[i - 1][j - 1] + 1 else: matrix[i][j] = max(matrix[i - 1][j], matrix[i][j - 1]) print(matrix[-1][-1]) 📌 description ) 문제출처 www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence.. 2020. 11. 20.
[백준] 체스판 다시 칠하기 / 1018번 / 파이썬 / Python 🎫code ) import sys def chess(a, b, c): cnt = 0 for i in range(a, a + 8): for j in range(b, b + 8): if i == a and j == b: if c == 'W': chk = 'B' if bg[i][j] != c: cnt += 1 else: chk = 'W' if bg[i][j] != c: cnt += 1 continue if chk == 'W': if bg[i][j] != 'W': cnt += 1 chk = 'B' else: if bg[i][j] != 'B': cnt += 1 chk = 'W' if chk == 'W': chk = 'B' else: chk = 'W' return cnt input = sys.stdin.readli.. 2020. 10. 28.
[백준] 듣보잡 / 1764번 / 파이썬 / python 🎫code ) import sys input = sys.stdin.readline n, m = map(int, input().split(' ')) n_l = set() n_s = set() for _ in range(n): name = input().rstrip() n_l.add(name) for _ in range(m): name = input().rstrip() n_s.add(name) res = sorted(list(n_l & n_s)) print(len(res)) for i in res: print(i) 📌 description ) 문제출처 : www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 .. 2020. 10. 21.
[백준] 후보 추천하기 / 1713번 / 파이썬 / Python / defaultdict 💡solutions ) 💬 defaultdict 사용 -> collections 모듈의 defaultdict는 딕셔너리와 거의 비슷하지만 key값이 없을 경우 미리 지정해 놓은 초기(default)값을 반환하는 특징이 있다. -> 그래서 조건문을 통해 get()메소드로 키값이 있는지 확인하지 않아도 되는 편리함이 있다. 💬 반복문에서 추천 리스트의 요소들을 하나씩 뽑아서 사진틀 리스트(photo)에 있는 지 먼저 확인하기 💬 비어있는 사진틀 유무에 따라 분기 처리 -> 비어있는 사진틀이 없다면 photo 리스트에 가장 적은 추천을 받은 번호의 학생을 찾기 -> 해당 번호의 학생 photo 리스트에서 삭제, 동시에 r_dic에서도 삭제하여 추천횟수 초기화(0) 🎫code ) from collections .. 2020. 10. 21.