전체 글 666

[백준] 19583 싸이버개강총회 python

https://www.acmicpc.net/problem/19583 19583번: 싸이버개강총회 첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는 www.acmicpc.net string을 숫자로 변환해서 조건안에 있는것만 체크했다. import sys; input = sys.stdin.readline def stringToMinutes(string): hh, mm = map(int, string.split(":")) return hh * 60 + mm def main(): S, E, Q = map(stringToMinutes, i..

STUDY/Algorithm 2022.02.11

[백준] 20207 달력 python

https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다. 여름이 거의 끝나가자 장 www.acmicpc.net 브루트포스로 범위 내 모든 값을 더하는 방식으로 구현했다. # import sys; input = sys.stdin.readline def main(): N = int(input()) num_task = [0 for _ in range(366)] for _ in range(N): s, e = map(int, input().split()) for i in range(s, e + 1): num_task[i] +=..

STUDY/Algorithm 2022.02.10

[백준] 18222 투에-모스 문자열 python

https://www.acmicpc.net/problem/18222 18222번: 투에-모스 문자열 0과 1로 이루어진 길이가 무한한 문자열 X가 있다. 이 문자열은 다음과 같은 과정으로 만들어진다. X는 맨 처음에 "0"으로 시작한다. X에서 0을 1로, 1을 0으로 뒤바꾼 문자열 X'을 만든다. X의 뒤에 www.acmicpc.net 분할정복으로 되어있는데 규칙성으로 찾았다. (k-1)를 binary로 바꾸고 모든 자리값을 더하면 해당 k번째 자리의 값이 된다. def main(): k = int(input()) - 1 answer = 0 while k: answer += k & 1 k >>= 1 print(answer % 2) if __name__ == "__main__": main()

STUDY/Algorithm 2022.02.09

[백준] 3184 양 python

https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 그래프 탐색을 활용하는 문제이다. BFS 로 이차원배열을 탐색했고 해당 구역에서 양과 늑대의 수를 확인한다음 한쪽 값만 내보내는 방식으로 진행했다. # import sys; input = sys.stdin.readline from collections import deque def bfs(i, j, _map, visit): global n, m ret = [0, 0] q = deque..

STUDY/Algorithm 2022.02.08

[백준] 13549 숨바꼭질 3 python

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS로 풀수있는 쉬운 문제이다. from collections import deque def main(): n, k = map(int, input().split()) memo = [200000 for _ in range(100001)] q = deque() q.append(n) memo[n] = 0 answer = None while q: cur = q.popl..

STUDY/Algorithm 2022.02.07

[백준] 2407 조합 python

https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 파이썬으로는 int나 long long등 변수 값의 최대 크기를 생각하지 않아도 되기 때문에 상당히 쉬운 문제이다. 일차원 변수를 사용해서 nCm = n! / ( (n-m)! * m! ) 으로 구현했다. def main(): n, m = map(int, input().split()) fact = [1 for _ in range(n + 1)] for i in range(2, n + 1): fact[i] = fact[i - 1] * i print(fact[n] // fact[n-m] // fact[m]) if __n..

STUDY/Algorithm 2022.02.07

이번 주를 돌아보며 (0131 ~ 0206)

1. 설 지난 주말부터 설 연휴였다. 설연휴라고 해서 평소와 다르진 않았지만 세뱃돈을 받았다는게 조금 달랐다. 돈을 받아서 기분이 좋았지만 슬슬 돈을 벌어서 용돈을 드릴때가 되었는데 아직도 돈을 받고 있다는 생각을 하니 기본이 그렇게 좋진 않았다. 빨리 이 상황을 벗어나기위해 설 연휴땐 더 열심히 공부한듯 하다. 요새 공부하는 건 운영체제이다. 공룡책이라 불리는 것을 바탕으로 KOCW의 반효경 교수님 강의를 듣고 있다. 이걸로 스터디도 하고 있는데 빨리 진도 나가서 끝내버려야지. 2. 또 교육 멀티캠퍼스에서 하는 교육을 하나 더 듣게 되었다. 자동차, 임베디드 관련한 교육이고 한 달 동안 듣게 된다. 약 일주일동안 자동차 지식을 머리에 넣고 나머지 기간동안은 sw 교육인데 sw보다 자동차 지식을 더 열심..

OTHERS/내 생각 2022.02.06

[백준] 9421 소수상근수 python

https://www.acmicpc.net/problem/9421 9421번: 소수상근수 양의 정수 n의 각 자리수의 제곱의 합을 계산한다. 그렇게 해서 나온 합도 각 자리수의 제곱의 합을 계산한다. 이렇게 반복해서 1이 나온다면, n을 상근수라고 한다. 700은 상근수이다. 72 + 02 + 02 = www.acmicpc.net 소수인 상근수를 찾는 문제이다. 소수를 에라토스테네스의 체로 구해놓고 소수가 상근수인지 찾으면 된다. from math import isqrt def findPrime(N): prime = [1 for _ in range(N + 1)] prime[0] = prime[1] = 0 for i in range(2, isqrt(N) + 1): if prime[i]: for j in r..

STUDY/Algorithm 2022.02.06

[백준] 14697 방배정하기 python

https://www.acmicpc.net/problem/14697 14697번: 방 배정하기 정보 초등학교 6학년 여학생들은 단체로 2박 3일 수학여행을 가기로 했다. 학생들이 묵을 숙소에는 방의 정원(방 안에 있는 침대 수)을 기준으로 세 종류의 방이 있으며, 같은 종류의 방들이 여러 www.acmicpc.net 상당히 쉬운 브루트포스 문제이다. 0,0,0 부터 각 방이 가질수 있는 최댓값까지 돌리는 방법으로 구현했다. def main(): *room, total = map(int, input().split()) for i in range((total // room[0]) + 1): tmp1 = room[0] * i for j in range((total // room[1]) + 1): tmp2 = ..

STUDY/Algorithm 2022.02.06

[백준] 22942 데이터 체커 python

https://www.acmicpc.net/problem/22942 22942번: 데이터 체커 데이터가 조건에 맞는다면 YES, 조건에 만족하지 않는다면 NO를 출력한다. www.acmicpc.net 주어진 데이터가 조건에 맞는지 확인하면되는 문제이다. 처음 시도한건 브루트포스이다. 추가할때 이미 추가된 원들과 비교하면서 들어갈수 있을때 추가하는 방식으로 풀었는데 시간초과가 났다. ''' boj 22942 wrong answer ''' # import sys; input = sys.stdin.readline def check(cur, circles): x, r = cur for xx, rr in circles: # 동심원인데 반지름까지 같은 경우 if x == xx and r == rr: return F..

STUDY/Algorithm 2022.02.05