본문 바로가기

전체 글

(254)
파이썬)요세푸스 문제0 -BOJ https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net from collections import deque n, k = map(int, input().split()) q = deque([i for i in range(1, n+1)]) idx = 1 answer = [] while q: for i in range(k-1): q.append(q.popleft()) answer.append(q.popleft()) # 리스트의 요소들을 문자열로 변환 string_list = [str(item) for item in answer] # 리스트의..
파이썬)아기상어 -BOJ https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net from collections import deque n = int(input()) arr = [] shark_size = 2 eat = 0 dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] shark_x = 0 shar_y = 0 for i in range(n): a = (list(map(int, input().split()))) for j in range(len(a))..
파이썬)그림 - BOJ https://www.acmicpc.net/status?user_id=dlwnsgml203&problem_id=1926&from_mine=1 채점 현황 www.acmicpc.net from collections import deque n, m = map(int, input().split()) arr = [] for i in range(n): a = list(map(int, input().split())) arr.append(a) max_area = 0 dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j): area = 1 q = deque() q.append((i, j)) while q: x, y = q.popleft() for k in range(4): nx = ..
파이썬)내리막길 -BOJ https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net m, n = map(int, input().split()) arr = [] cnt = 0 for i in range(m): a = list(map(int, input().split())) arr.append(a) dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] dp = [[-1] * n for _ in range(m)] def dfs(sx, sy): if sx == m-1 and s..
파이썬)안전영역 BOJ-2468 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net from collections import deque n = int(input()) max_area = 1 arr = [list(map(int, input().split()))for _ in range(n)] dx = [1, -1, 0, 0] dy = [0, 0, -1, 1] def bfs(arr, height): visit = [[False] * n for _ in range(n)] area = 0 f..
파이썬)뒤집기 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net s = input() cnt = 0 for i in range(len(s) - 1): if s[i] != s[i+1]: cnt += 1 print((cnt+1) // 2) 이 문제는 은근 어려웠다. 연속되는 수열의 개수를 구해야하나? 라고 생각해 연속 수열을 구하는 쪽으로 접근했다. 하지만 시간초과가 나오게 되었고 s의 길이가 100만인 것을 보아 하나의 반복문으로 수행해야 한다는 것을 생각해내 ..
자바스크립트)웹펙.... 모듈 번들러 재사용성이라는 말이 있다. 흔히 말해 한 번 작성한 코드를 여러 번 재사용 하는 것이다. 예를 한 번보자. 단순히 x,y값을 받아 둘의 합을 리턴해주는 함수이다. const Calc = (x: number, y: number) => { return x + y; }; 굉장히 간단한 함수이다. 하지만 단순히 x,y값을 받아 둘의 합을 리턴해주는 것이 아닌, 특정 api를 요청하고 서버로부터 받은 값 중에 무엇을 비교하고, 올림/내림을 수행하고 등등의 복잡한 함수라면 우린 분명 어떤 파일에 해당 함수를 저장하여 사용할 것이다. 하지만 " 특정 api를 요청하고 서버로부터 받은 값 중에 무엇을 비교하고, 올림/내림을 수행하고 등등"의 모든 일련의 과정을 하나의 함수로 담는 것은 매우 안좋다. 따라서 모든 것을 ..
파이썬) 토너먼트 https://www.acmicpc.net/problem/1057 n, kim, im = map(int, input().split()) if n % 2 == 1: n += 1 if kim % 2 == 1: kim += 1 if im % 2 == 1: im += 1 cnt = 1 while True: if kim % 2 == 1: kim += 1 if im % 2 == 1: im += 1 if kim // 2 == im // 2: # print(kim, im) break kim = kim // 2 # 8 4 2 1 im = im // 2 # 9 5 3 2 cnt += 1 print(cnt) 우선 어떻게 풀지 생각하는데 10분정도 소요되고 코드를 작성하는데 5분정도 걸린것 같다. 내가 생각한 것은 1. 어떻..
파이썬)수들의 합 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net s = int(input()) total = 0 count = 0 while True: count += 1 total += count if total > s: break print(count-1)
파이썬)K번째 수 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net n = int(input()) k = int(input()) start, end = 1, n**2 result = 0 if n**2 == k: print(k) # k가 n의 제곱이면 당연히 맨 끝자리 수이므로 k를 출력한다. else: while(start < end): mid = (start+end)//2 c = 0 # mid보다 작거나 같은 숫자 계산 for i ..
파이썬)미로 탈출 https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque import copy def solution(maps): s = [] l = [] exit = [] answer = 0 visit = [[int(0) for _ in range(len(maps[0]))] for _ in range(len(maps))] for i in range(len(maps)): for j in range(len(maps[..
파이썬)요격 시스템 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(targets): answer = 0 targets.sort(key=lambda x: [x[1], x[0]]) e = 0 for target in targets: if target[0] >= e: answer += 1 e = target[1] return answer
React)자식 컴포넌트의 함수를 부모 컴포넌트에서 사용하기 with React.useImperativeHandle, React.forwardRef 최근 개발을 진행하면서 자식컴포넌트에 정의되어 있는 함수를 부모컴포넌트에서 사용해야 할 일이 생겼다. 부모 => 자식으로 넘어가는 일은 많았으나 자식 => 부모로 넘어가는 일은 자주있는 일이 아니다. 때문에 이렇게 정리를 해두려한다. 우선 useRef를 prop로 넘기는 법부터 알아보자 (내가 해결한 방식은 useRef를 자식컴포넌트에 넘기고, 그 자식컴포넌트의 함수를 부모컴포넌트에서 사용할 때였다. useRef와 함수는 전혀 상관이 없다.) 자식컴포넌트와 부모컴포넌트를 만들어준다. Child.tsx import React, { forwardRef } from "react"; const Child = () => { return ( Im Child Component!! Props.number = ); };..
파이썬)수들의 합2 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net n, m = map(int, input().split()) arr = list(map(int, input().split())) start = 0 end = 1 cnt = 0 while start 3이므로 end를 +1 증가시킨다. 그럼 end는 2가 되고 arr[start:end]는 [3,4]가된다. sum은 7이고 7 > m(6) 이므로 start + 1..
파이썬)현수막 https://www.acmicpc.net/problem/14716 14716번: 현수막 혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라. www.acmicpc.net import sys sys.setrecursionlimit(100000) n, m = map(int, sys.stdin.readline().split()) arr = [] dx = [0, 0, -1, 1, -1, -1, 1, 1] dy = [1, -1, 0, 0, -1, 1, -1, 1] one = [] for i in range(n): arr.append(list(map(int, sys.stdin.readline().split()))) visit = [[False for _ in range(m)]..