전체 글354 [swea] 14413번: 격자판 칠하기 - 파이썬(python) T = int(input()) for t in range(1, T+1): n, m = map(int, input().split()) arr = [] for _ in range(n): arr.append(list(input())) board = [0,0,0,0] for x in range(n) : for y in range(m) : if arr[x][y] == "#" : if (x+y) % 2 == 0 : board[0] += 1 else : board[1] += 1 elif arr[x][y] == "." : if (x+y) % 2 == 0 : board[2] += 1 else : board[3] += 1 if (board[0] != 0 and board[1] != 0) or (board[0] != 0 a.. 알고리즘/이것저것 2022. 11. 1. [swea] 1928번: Base64 Decoder - 파이썬(python) 출처 : https://swexpertacademy.com/main/solvingProblem/solvingProblem.do Encoding 순서 는 다음과 같다. 1. 우선 24비트 버퍼에 위쪽(MSB)부터 한 byte씩 3 byte의 문자를 집어넣는다. 2. 버퍼의 위쪽부터 6비트씩 잘라 그 값을 읽고, 각각의 값을 아래 [표-1] 의 문자로 Encoding 한다. 문제 는 다음과 같다. 입력으로 Base64 Encoding 된 String 이 주어졌을 때, 해당 String 을 Decoding 하여, 원문을 출력하는 프로그램을 작성하시오. 즉, 인코딩된 string 을 인코딩 과정의 역순으로 진행하여, 원문을 출력해야 한다. Step 1 먼저, input 의 각 문자는 어떤 값을 표1의 문자로 인.. 알고리즘/이것저것 2022. 10. 31. 여덟단어 - 박웅현 책에서는 여덟가지 주제로 삶의 태도를 가르쳐준다. 1. 자존 20대엔 대학졸업 후 직장을 가지고 이만큼의 돈을 모아야돼 30대엔 결혼하고 차를 사고 연봉이 몇 프로 올라야돼 40대엔,50대엔,,, 한국은 위와같이 나이대에 맞는 암묵적인 기준이 있는 듯 하다. 책에서 '한국사람들은 나이대에 맞는 규격의 상자에 들어가서 사는 것 같다' 라는 말이 있었는데, 뭔가 머리를 한 대 맞은 듯 했다. 나도 모르게 사회가 만든 상자에 갇혀 있는 건 아닌가 싶다. 누가 만들어둔 기준을 따르지 말고, 바깥이 아닌 내 안에 기준점을 찍자. 계속해서 남과 스스로가 비교될 때, 내면의 기준점을 떠올리자. 자존은 남이 기준이 아니라 '나' 스스로가 기준이 될 때 형성된다. 2. 본질 나만의 본질을 쌓아야 한다. 본질을 쌓아두면 .. 독서 2022. 10. 31. 두부가 좋아질지도? 나는 어릴때부터 두부를 썩 좋아하지 않았는데 아마 물컹물컹한 식감 때문일 수도..? 그래서 자취하곤 두부를 내돈내산해서 먹은 적이 없다 그치만 엄마가 자연드림으로 두부를 배송시켜줬다 오늘은 묵혀뒀던 그 두부를 맛있게 먹어보려 한다 평소에 좋아하지 않던 재료로 맛있게 요리된 것을 먹으면 그때부터 그 재료가 좋아지는 경우도 꽤 있었기 때문이다 그래서 도전한 것은~~ 두부계란전과 베이컨 두부말이!! 사실 계란, 베이컨 조합이면 정말이지 맛없을 수가 없긴하다 넘넘 맛있당! 자취를 시작하고 집에 하루종일 있을 때면 , 조금 심심하고 기분전환이 필요할 때도 있는데 그럴때마다 나에게 주는 선물처럼 맛있는 요리를 예쁘게 플레이팅해서 먹으면 꽤 기분이 좋아졌다 그래서 앞으로는 조금 더 도전적인(?) 요리에도 시도해보려한.. 요리 2022. 10. 26. [백준] 19237번: 어른 상어 - 파이썬(python) 나의 풀이 import copy import sys input = sys.stdin.readline n, m, k = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(n)] # 격자판 smell = [[[0, 0] for _ in range(n)] for _ in range(n)] shark_dir = [0] + list(map(int, input().split())) # 현재 상어 방향 dir_rank = [[]] # 상어의 방향별 우선순위 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for i in range(m): array = [] for j in range(4): array.ap.. 알고리즘/구현 2022. 10. 25. 과거가 남긴 우울 미래가 보낸 불안 - 김아라 내 최애 유튜버 너진똑 님이 추천해줘서 보게 된 책이다. 사실 제목에서 너무나도 확 끌림을 받았기에 안볼 수가 없었다. 요즘따라 내면을 단단하게 하는 데에 관심이 많아졌고, 아무래도 가장 쉽게 방법을 터득할 수 있는 길이 책이라고 생각했다. 그래서 요즘은 평소 관심사인 경제책 보단 이런 책들을 더 가까이 하고 있다. 운동을 하면 근육이 붙듯이 마음 근육도 노력해서 키울 수 있다고 생각한다. 무엇이든지 기초가 되는 것은 체력인 것 처럼, 살아가는데 가장 중요한 멘탈과 회복력도 단단해진 내면에 기초할 것이다. 따라서 앞으로는 마음근육을 키우기 위해 자발적인 노력을 하려 한다. 그런 날이 종종 있었다. 어딘가 불안하고 우울하고 복합적인 감정이 들어서 아무것도 하기 싫고 누워만 있고 싶은 날. 그러한 감정이 어.. 독서 2022. 10. 25. [백준] 19236번: 청소년 상어 - 파이썬(python) 나의 풀이 from collections import deque import heapq import copy def move_fish(shark, fish) : for i in range(1,17) : # 1번~16번물고기까지 차례로 이동 x,y = fish[i][0],fish[i][1] if x==-1 or y==-1 : # 없어진 물고기 continue rotate = shark[x][y][1] # i번 물고기의 방향 for _ in range(8) : nx = x + dx[rotate%8] ny = y + dy[rotate%8] # 해당 방향의 다음 칸이 범위안이고, 빈칸이거나 물고기가 존재한다면 if 0 알고리즘/DFS, BFS 2022. 10. 24. [백준] 16236번: 아기 상어 - 파이썬(python) 나의 풀이 from collections import deque n= int(input()) arr = [] now_x , now_y = -1, -1 # 아기 상어의 위치 length = 2 # 아기 상어의 크기 cnt = 0 # 아기 상어가 먹은 물고기 개수 time = 0 # 아기 상어가 물고기를 잡아먹는데 걸린 시간 m = 0 # 물고기 개수 for _ in range(n) : arr.append(list(map(int, input().split()))) for i in range(n) : for j in range(n) : if arr[i][j] == 9 : now_x = i now_y = j arr[i][j] = 0 elif arr[i][j] > 0 : m += 1 dx = [1,0,-1,0] .. 알고리즘/DFS, BFS 2022. 10. 24. [백준] 3665번: 최종 순위 - 파이썬(python) 나의 풀이 from collections import deque T = int(input()) for _ in range(T): n = int(input()) graph = [[False]*(n+1) for _ in range(n+1)] last_year = list(map(int, input().split())) # 작년의 순위 indegree = [0] * (n+1) # 진입차수 for i in range(n): for j in range(i+1,n) : graph[last_year[i]][last_year[j]] = True indegree[last_year[j]] += 1 # j의 진입차수 1증가 m = int(input()) # 상대적인 등수가 바뀐 쌍의 수 for i in range(m) : .. 알고리즘/Graph 그래프 2022. 10. 21. [벡준] 2887번: 행성 터널 - 파이썬(python) 틀린 풀이 import heapq def find_parent(parent, x) : if parent[x] != x : parent[x] = find_parent(parent, parent[x]) return parent[x] def union_parent(parent, i,j) : a = find_parent(parent, i) b = find_parent(parent, j) if a < b : parent[b] = a else : parent[a] = b N = int(input()) arr = [] q = [] parent = [i for i in range(N)] for _ in range(N) : x,y,z = map(int, input().split()) arr.append((x,y,z)) .. 알고리즘/Graph 그래프 2022. 10. 21. [백준] 11404번: 플로이드 - 파이썬(python) 나의 풀이 n = int(input()) m = int(input()) dis = [[int(1e9)] * (n+1) for _ in range(n+1)] for i in range(n+1) : dis[i][i] = 0 # 자기 자신으로 가는 노선은 0 for _ in range(m) : a, b, c = map(int, input().split()) dis[a][b] = min(dis[a][b], c) # a도시에서 b도시로 가는 비용 저장 for k in range(1, n+1) : for i in range(1, n+1) : for j in range(1, n+1) : dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]) for i in range(1, n+1) .. 알고리즘/최단경로 2022. 10. 20. [이코테] 편집거리 - 파이썬(python) 문제 두 개의 문자열 A와 B가 주어졌을 때, 문자열 A를 편집하여 문자열 B로 만들고자 합니다. 문자열 A를 편집할 때는 다음의 세 연산 중에서 한 번에 하나씩 선택하여 이용할 수 있습니다. 삽입(Insert) : 특정한 위치에 하나의 문자를 삽입합니다. 삭제(Remove) : 특정한 위치에 있는 하나의 문자를 삭제합니다. 교체(Replace) : 특정한 위치에 있는 하나의 문자를 다른 문자로 교체합니다. 이때 편집 거리란 문자열 A를 편집하여 문자열 B로 만들기 위해 사용한 연산의 수를 의미합니다. 문자열 A를 문자열 B로 만드는 최소 편집 거리를 계산하는 프로그램을 작성하세요. 예를 들어 "sunday"와 "saturday"의 최소 편집 거리는 3입니다. 입력 조건 두 문자열 A와 B가 한 줄에 하.. 알고리즘/동적프로그래밍(DP) 2022. 10. 20. 이전 1 ··· 3 4 5 6 7 8 9 ··· 30 다음