반응형
반응형

과학과 예술 분야에서 큰 업적을 남긴 사람은
반드시 대학에 다니거나, 박물관이나 미술관 등의 편의를 본 사람이 아니며,
위대한 기술자와 발명가가 반드시
기계학을 전문적으로 가르쳐 주는 학교에서 배운 사람은 아니었다.
발명의 모체는 편의보다 곤궁이었으며,
인재를 가장 많이 배출한 곳은 '고난'이라는 학교였다.
- 새뮤얼 스마일즈, '자조론'에서


궁즉통(窮則通)이라는 말이 있습니다.
막다른 골목에 다다르면 반드시 해결책을 찾을 수 있다는 얘기입니다.
조직을 책임지는 훌륭한 리더도,
일반의 기대를 넘어서는 탁월한 상상력도
‘곤궁’과 ‘고난’이라는 학교에서 생성됩니다.

반응형
반응형

시인에게서 내가
배운 것은 '나'에 대한 조심이다.
아이가 태어나면 부모는 (아이뿐만이 아니라)
자기 자신도 새처럼 다뤄야 한다. 새를 손으로
쥐는 일은, 내 손으로 새를 보호하는 일이면서,
내 손으로부터 새를 보호하는 일이기도 하다.
내가 내 삶을 지켜야 하고 나로부터도
내 삶을 지켜야 한다. 이것은 결국
아이의 삶을 보호하는 일이다.


- 신형철의《인생의 역사》중에서 -


* 시인은 위대한 스승입니다.
시인에게서 배우는 것이 너무도 많습니다.
시를 통해 '나'를 알게 합니다. 새를 손으로 쥐듯,
섬세한 감각으로 나를 다루는 법도 배웁니다. 내가
나를 보호하는 것이 나와 가까운 주변 사람들의 삶도
보호하는 것임을 깨닫기도 합니다. 아름답고 간결한
시어(詩語)의 옷으로 내 삶을 입히는 것이
내 삶의 온기를 지키는 일입니다.

반응형

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

나를 버린 친모를 생각하며  (0) 2023.02.16
심리치유 과정에서 조심할 일  (0) 2023.02.15
모든 순간에 잘 살아야 한다  (0) 2023.02.13
감동과 행복의 역치가 낮은 사람  (0) 2023.02.11
기억의 뒷마당  (0) 2023.02.10
반응형

학습공동체

[  , Learning Community , Community of Practice ]

 

모든 학습자들이 각자 자신의 학습에 대하여 책임을 가지고 다른 구성원들의 학습을 서로 돕고 지원해주는 분위기가 형성된 특정 그룹을 의미한다. 유사한 흥미, 관심사, 공통의 가치, 믿음을 공유하는 사람들의 모임으로 학습의욕, 아이디어와 의견을 공유하려는 의지를 지닌 학습자 집단이다. 학습을 주목적으로 하는 개인들이 자발적으로 구성한 집단으로서, 구성원들이 협력적으로 상호작용하면서 학습에 새로운 가치를 부여하고 이를 통해 학습활동을 전개하는 학습경험을 공유하는 사람들의 집단이다.

[네이버 지식백과] 학습공동체 [學習共同體, Learning Community, Community of Practice] (HRD 용어사전, 2010. 9. 6., (사)한국기업교육학회)

https://terms.naver.com/entry.naver?cid=51072&docId=2179024&categoryId=51072

반응형
반응형

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


이어지는 내용입니다. ‘난독증이 있는 사람이 이끄는 기업은
다른 기업에 비해 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
"""

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

반응형

+ Recent posts