반응형
반응형

난독증 환자는 학창 시절 공부하는 데 어려움을 겪으면서
이를 보상하기 위해 다른 능력을 개발하기 위해 노력한다.
난독증을 지닌 창업가는 문서를 읽고 작성하는 능력은 부족하지만
그 대신 대화 능력, 창의성, 분석력, 공간지각 능력들이 뛰어나다.
특히 어린 시절부터 자신의 약점을 잘 알기 때문에
다른 사람을 믿고 일부 업무를 위임하는 능력이 뛰어나다.
- 줄리 로건, 런던 시티 대학 교수


이어지는 내용입니다. ‘난독증이 있는 사람이 이끄는 기업은
다른 기업에 비해 2배 정도 빨리 성장했고,
2-3개 이상의 기업을 동시에 경영할 가능성 또한 두 배 높았다.
난독증을 갖고서도 성공한 사람들은 학습장애를 극복하기 위해
도움을 청하는 데 익숙했는데, 사업가에겐 이것이 매우 중요하다.
권위를 기꺼이 위임할 수 있다는 것은 난독증이 있는 사람들에게 엄청난 이점이 된다.’

반응형
반응형

우리는 살아 있는
모든 순간에 잘 살아야 한다.
디오게네스도 비슷한 이야기를 했다.
누군가 그에게 '이제 나이가 들었으니
쉬어야 하지 않겠느냐'고 했을 때 이렇게
답했다고 한다. "내가 달리기를 하고 있는데
결승점에 다가간다고 달리기를
멈추어야 할까?"


- 고병권의《철학자와 하녀》중에서 -


* 그렇습니다.
모든 순간에 잘 살아야 합니다.
젊을 때는 젊으니까 잘 살아야 하고
나이가 들면 들었으니까 더 잘 살아야 합니다.
그래서 달리기의 결승점에 이르는 순간까지
'열심히 달렸다', '최선을 다했다'고
스스로 말할 수 있을 때, 비로소
잘 살았다 할 수 있습니다.

반응형

'아침편지' 카테고리의 다른 글

심리치유 과정에서 조심할 일  (0) 2023.02.15
시인에게서 내가 배운 것  (0) 2023.02.14
감동과 행복의 역치가 낮은 사람  (0) 2023.02.11
기억의 뒷마당  (0) 2023.02.10
깨달음  (0) 2023.02.09
반응형

[백준] 1006번 습격자 초라기 - PYTHON, 점화식 

 

https://www.acmicpc.net/problem/1006

 

1006번: 습격자 초라기

하나의 특수 소대로 인접한 두 영역을 커버할 수 있는 배치는 (2,10), (9,16), (4,5), (7,8), (13,14) 이다. 그리고 나머지 6개 구역은 각각 하나의 특수 소대로 커버할 수 있다. 그러므로 최소 11개 특수 소

www.acmicpc.net

"""
    습격자 초라기
    https://www.acmicpc.net/problem/1006
    문제
        초라기는 한국의 비밀국방기지(원타곤)를 습격하라는 임무를 받은 특급요원이다. 원타곤의 건물은 도넛 형태이며, 초라기는 효율적인 타격 포인트를 정하기 위해 구역을 아래와 같이 두 개의 원 모양으로 나누었다. (그림의 숫자는 각 구역의 번호이다.)
        초라기는 각각 W명으로 구성된 특수소대를 다수 출동시켜 모든 구역에 침투시킬 예정이며, 각 구역 별로 적이 몇 명씩 배치되어 있는지는 초라기가 모두 알고 있다. 특수소대를 아래 조건에 따라 침투 시킬 수 있다.
        한 특수소대는 침투한 구역 외에, 인접한 한 구역 더 침투할 수 있다. (같은 경계를 공유하고 있으면 인접 하다고 한다. 위 그림에서 1구역은 2, 8, 9 구역과 서로 인접한 상태다.) 즉, 한 특수소대는 한 개 혹은 두 개의 구역을 커버할 수 있다.
        특수소대끼리는 아군인지 적인지 구분을 못 하기 때문에, 각 구역은 하나의 소대로만 커버해야 한다.
        한 특수소대가 커버하는 구역의 적들의 합은 특수소대원 수 W 보다 작거나 같아야 한다.
        이때 초라기는 원타곤의 모든 구역을 커버하기 위해 침투 시켜야 할 특수 소대의 최소 개수를 알고 싶어 한다.
    입력
        첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 구성되어있다.
        첫째 줄에는 (구역의 개수)/2 값 N과 특수 소대원의 수 W가 주어진다. (1 ≤ N ≤ 10000, 1 ≤ W ≤ 10000).
        둘째 줄에는 1~N번째 구역에 배치된 적의 수가 주어지고, 셋째 줄에는 N+1 ~ 2N번째 구역에 배치된 적의 수가 공백으로 구분되어 주어진다. (1 ≤ 각 구역에 배치된 최대 적의 수 ≤ 10000) 단, 한 구역에서 특수 소대원의 수보다 많은 적이 배치된 구역은 존재하지 않는다. (따라서, 각 구역에 배치된 최대 적의 수 ≤ W)

    출력
        각 테스트케이스에 대해서 한 줄에 하나씩 원타곤의 모든 구역을 커버하기 위해 침투 시켜야 할 특수 소대의 최소 개수를 출력하시오.

    예제 입력 1 
        1
        8 100
        70 60 55 43 57 60 44 50
        58 40 47 90 45 52 80 40
    예제 출력 1 
        11
    힌트
        하나의 특수 소대로 인접한 두 영역을 커버할 수 있는 배치는 (2,10), (9,16), (4,5), (7,8), (13,14) 이다. 
        그리고 나머지 6개 구역은 각각 하나의 특수 소대로 커버할 수 있다. 
        그러므로 최소 11개 특수 소대를 침투시켜야 한다.
        
    *** 참고 : BOJ 1006  습격자 초라기 https://casterian.net/algo-prob/boj1006.html  (점화식으로 접근하신 분)
               https://nerogarret.tistory.com/20
 
"""

# T = int(input(" 테스트 케이스 T 입력 : "))

import sys
# import random
T = int(sys.stdin.readline())
results = []
 
def recur(start, a, b, c):
    for i in range(start, N):
        # i 열까지 최소
        a[i+1] = min(b[i]+1, c[i]+1)
        if zone1[i] + zone2[i] <= W: a[i+1] = min(a[i+1], a[i]+1)
        if i > 0 and zone1[i-1] + zone1[i] <= W and zone2[i-1] + zone2[i] <= W: a[i+1] = min(a[i+1], a[i-1]+2)
 
        if i < N-1:
            # 1행은 i+1열, 2행은 i열까지 최소 소대 수
            b[i+1] = a[i+1] + 1
            if zone1[i+1] + zone1[i] <= W: b[i+1] = min(b[i+1], c[i] + 1)
 
            # 1행은 i열, 2행은 i+1열까지 최소 소대 수
            c[i+1] = a[i+1]+1
            if zone2[i+1] + zone2[i] <= W: c[i+1] = min(c[i+1], b[i] + 1)
    
    return a, b, c
 
 
for _ in range(T):
    N, W = map(int, sys.stdin.readline().split())
    # 윗줄 적의 수
    zone1 = list(map(int, sys.stdin.readline().split()))
    # 아랫줄 적의 수
    zone2 = list(map(int, sys.stdin.readline().split()))
    
    # 1행과 2행 모두 i-1열까지 채울 때 최소 소대 수
    a = [0 for _ in range(N+1)]
    # 1행은 i열까지, 2행은 i-1열까지 채울 때 최소 소대 수
    b = [0 for _ in range(N+1)]
    # 1행은 i-1열까지, 2행은 i열까지 채울 때 최소 소대 수
    c = [0 for _ in range(N+1)]
    a[0] = 0
    b[0] = 1
    c[0] = 1
    a, b, c = recur(0, a, b, c)
    res = a[N]
	
    # 윗줄의 0번 열과 끝 열이 쌍을 이룰 수 있을 때 다시 한 번 계산 후 최솟값 갱신
    # 윗줄의 0번 열이 이미 채워졌다고 생각
    if N > 1 and zone1[0] + zone1[N-1] <= W:
        a[1] = 1
        b[1] = 2 # 아랫줄의 0번열, 윗줄의 1번열을 쌍을 이룰 수 없는 채로 2개의 소대를 배치해야함.
        if zone2[0] + zone2[1] <= W: c[1] = 1 # 아랫줄의 0번 열과 1번 열이 쌍을 이룰 수 있는 경우
        else: c[1] = 2
        
        a, b, c = recur(1, a, b, c)
        res = min(res, c[N-1] + 1)
        
    # 아랫줄의 0번 열과 끝 열이 쌍을 이룰 수 있을 때 다시 한 번 계산 후 최솟값 갱신
    # 아랫줄의 0번 열이 이미 채워졌다고 생각
    if N > 1 and zone2[0] + zone2[N-1] <= W:
        a[1] = 1
        c[1] = 2 # 윗줄의 0번열, 아랫줄의 1번열을 쌍을 이룰 수 없는 채로 2개의 소대를 배치해야함.
        if zone1[0] + zone1[1] <= W: b[1] = 1 # 윗줄의 0번 열과 1번 열이 쌍을 이룰 수 있는 경우
        else: b[1] = 2
        
        a, b, c = recur(1, a, b, c)
        res = min(res, b[N-1] + 1)
 
    # 윗줄과 아랫줄 모두 0번 열과 끝 열이 쌍을 이룰 수 있을 때 다시 한 번 계산 후 최솟값 갱신
    # 윗줄과 아랫줄 모두 0번 열이 이미 채워졌다고 생각
    if N > 1 and zone1[0] + zone1[N-1] <= W and zone2[0] + zone2[N-1] <= W:
        a[1] = 0 # 0열이 이미 채워짐
        b[1] = 1
        c[1] = 1
 
        a, b, c = recur(1, a, b, c)
        res = min(res, a[N-1] + 2)
    
    results.append(res)
 
for result in results:
    sys.stdout.write(str(result)+'\n')


""" OUTPUT
   >> 1006_raider.py 
    1
    8 100
    70 60 55 43 57 60 44 50
    58 40 47 90 45 52 80 40
    11
"""

수학에서 점화식(漸化式)은 수열에서 이웃하는 두개의 항 사이에 성립하는 관계를 나타낸 관계식이다.  

반응형
반응형

싱그러운 날씨.
흔들리는 나뭇잎과 햇살.
다정한 인사와 안부. 마음이 담긴 메시지.
나를 감동하게 하는 것이나 내가 행복하다고 느끼는
순간을 적으라면 아마도 이 페이지를 빼곡하게
다 채울 수 있을 것 같다. 나는 감동과
행복의 역치가 낮은 사람.


- 바리수의《이젠 네가 피어날 차례야》중에서 -


* 저에게는 아주 작은 자극에도
감동과 행복을 느끼는 능력이 있습니다.
그래서인지 일상에서도 자주 감탄하고 감동하고
감사하고 행복해합니다. 내 감정마저 누군가의 허락을
받을 필요 없습니다. 나는 내 마음을 보냈고 그걸
받아주는 건 상대의 몫이니까요. 나는 그냥
내 몫의 일을 하면 되는 거니까요.

반응형

'아침편지' 카테고리의 다른 글

시인에게서 내가 배운 것  (0) 2023.02.14
모든 순간에 잘 살아야 한다  (0) 2023.02.13
기억의 뒷마당  (0) 2023.02.10
깨달음  (0) 2023.02.09
살아야 할 이유  (0) 2023.02.08
반응형

https://www.youtube.com/watch?v=Y2DibujuYlw

 

세상은 감사하는 자의 것이다.
내 인생에서 어떤 일이 일어나든 감사하는 법을 배웠을 때,
기회, 사람들과의 관계, 부까지도 내게로 다가왔다.
감사해야 할 것에 제대로 감사를 표하는 것,
(역경, 고통, 슬픔 같은) 쉽게 감사하기 어려운 것에도
기꺼이 감사할 때, 인생은 분명 천국이 된다.
- 오프라 윈프리

“행복은 감사하는 것이다. 감사는 더 많은 행복을 가져다준다.
부모에게 감사할 때 부모는 더 많은 것을 주려하고,
친구에게 감사할 때 그 친구는 더 많은 우정을 나누려 하며,
이웃에게 감사할 때 그 이웃은 더 많은 온정을 베풀려고 한다.”
쿠란에 나오는 감사예찬입니다.

 

반응형
반응형

이야기의
가장 본질적인 속성은,
그것이 인간과 인간 사이에 다리가
되어준다는 것입니다. 이야기를 찾을 수 있는
첫 장소는 바로 여러분의 기억 뒷마당입니다.
각자 살아온 인생 말입니다. 나는 이것을
'과거에서 금광을 발견하는 방법'이라고
부릅니다.


- 더그 스티븐슨의《명강의 무작정 따라하기》중에서 -


* 인간에게는, 특별하게도
'기억'이라는 뒷마당이 있습니다.
무궁무진한 이야기의 금광입니다.
내가 살아온 삶의 기억이 반짝이는 이야기를 만들고
그 이야기가 더러는 전설이 되고 신화가 됩니다.
때로는 불멸의 역사가 됩니다.  

반응형

'아침편지' 카테고리의 다른 글

모든 순간에 잘 살아야 한다  (0) 2023.02.13
감동과 행복의 역치가 낮은 사람  (0) 2023.02.11
깨달음  (0) 2023.02.09
살아야 할 이유  (0) 2023.02.08
'우리편'이 주는 상처가 더 아프다  (0) 2023.02.07

+ Recent posts