728x90
반응형

비싼 시계를 찰 수 있는 사람이 꼭 비싼 시계만 차는 건 아니다.

빌 게이츠의 손목에는 몇 만 원짜리 카시오 다이버 워치가 올라가고,

오바마는 국내에서 '무적 시계'로 불리는 F-91W를 착용했다.

손석희부터 정의선, 주우재, BTS RM까지 찾아보면 의외로 카시오를 즐겨 착용한 유명인이 많다.

그래서 이번에는 그중에서도 특히 유명한 7개를 골라봤다.

단순히 누가 착용했는지만 보는 것보다, 왜 이 시계가 지금까지 팔리고 있는지 같이 살펴보면 더 재미있다.


1. 손석희의 국민 전자시계

CASIO A158WA-1

[손석희 착용 사진]

 

 

 

 

카시오 빈티지를 대표하는 모델을 하나 고르라면 A158WA-1을 빼기 어렵다.

국내에서는 손석희가 착용하면서 특히 많이 알려졌고,

하지원과 주우재 등 여러 유명인의 손목에서도 볼 수 있었던 시계다.

작은 사각형 디지털 화면과 얇은 메탈 밴드.

특별한 장식은 없지만 오히려 그래서 지금 봐도 촌스럽지 않다.

 

 

 

 

 

 

[A158WA-1 제품 사진]

 

 

 

크기도 36.8 × 33.2mm로 작고 무게도 46g에 불과하다.

스톱워치, 알람, LED 조명 정도의 기본 기능을 갖추고 배터리는 약 7년간 사용할 수 있다.

정장 셔츠에도 들어가고 반팔 티셔츠에도 어색하지 않다.

몇 만 원짜리 시계지만 '싼 시계'보다는 이제 하나의 클래식에 가깝다.

 

A158WA-1 구매하기 : 49,000원
[손석희 시계 링크]


2. 오바마와 정의선의 무적 시계

CASIO F-91W

 

[오바마 착용 사진]

 

 

 

A158과 함께 카시오를 대표하는 또 하나의 모델.

버락 오바마 전 미국 대통령과 정의선 현대자동차그룹 회장이 착용한 것으로 알려진 F-91W다.

1989년 출시된 뒤 기본적인 디자인을 거의 그대로 유지하며 지금까지 판매되고 있다.

또한 극강의 내구력때문에 유명한데

그래서 국내에서는 '무적 시계'라는 별명으로도 많이 불린다.

 

 

[F-91W 제품 사진]

 

 

무게는 겨우 21g. 알람, 스톱워치, 조명, 날짜 표시를 갖췄고 배터리 수명은 약 7년이다.

기능만 보면 특별할 게 없는데, 가격과 내구성, 편안한 착용감을 합치면 이야기가 달라진다.

좋은 시계가 반드시 복잡할 필요는 없다는 걸 보여주는 모델이다.

 

F-91W 구매하기 : 39,000원
[무적 시계 링크]


3. 빌 게이츠의 흑새치

CASIO MDV-106

[빌 게이츠 착용 사진]

 

 

 

 

 

억만장자의 시계라고 하면 롤렉스나 파텍 필립부터 떠올리기 쉽다.

그런데 빌 게이츠의 손목에서 자주 언급되는 시계 중 하나는

카시오 MDV-106이다.

국내에서는 검은색 다이얼과 새치 로고 때문에 흔히 '흑새치'라고 부른다.

 

 

 

 

 

 

 

[MDV-106 제품 사진]

 

 

200m 방수와 회전 베젤을 갖춘 정석적인 다이버 워치 디자인이다.

앞의 세 모델과 달리 크기도 제법 크고 손목 위에서 존재감이 확실하다.

무엇보다 디자인이 단순하다. 검은 다이얼과 베젤, 흰색 인덱스 조합이라 유행을 크게 타지 않는다.

저렴한 가격에 전통적인 다이버 워치 디자인을 경험하고 싶다면 여전히 매력적인 모델이다. 

 

MDV-106 구매하기: 115,000원

[빌게이츠 시계 링크]

 


4. 주우재의 메탈 지샥

G-SHOCK GM-5600B-1

 

[주우재 유튜브 장면]

 

 

평소 패션 아이템을 직접 소개하는 주우재가 착용하고 추천하면서 국내에서 꽤 유명해진 지샥이다.

실제 착용 사진과 유튜브 추천 이후 '주우재 시계'로 찾아보는 사람도 많았다. 

지샥의 근본적인 사각형 디자인은 그대로인데, 일반적인 DW-5600보다 훨씬 묵직하게 보인다.

 

 

[GM-5600B-1 제품 사진]

 

 

이유는 베젤이다. 내부는 레진으로 만들고 외부 베젤에는 스테인리스 스틸을 사용했다.

완전한 풀메탈은 아니기 때문에 무게는 73g 정도로 억제했다.

여기에 블랙 이온 도금과 반전 LCD를 적용했다.

200m 방수와 내충격성도 갖추고 있어서 패션용으로 샀다가 실제 데일리 시계로 쓰기 좋은 지샥이다.

 

GM-5600B-1 구매하기 : 290,000원
[주우재 시계 링크]


5. BTS RM의 군대 지샥

G-SHOCK DW-5600UE-1

[RM 착용 사진]

 

 

RM은 파텍 필립과 롤렉스 같은 고가 시계를 보유한 것으로도 유명하다.

그런데 그런 RM이 군대에서 사용한 시계가 바로 DW-5600UE-1다.

처음 보면 오래된 카시오 전자시계처럼 보인다. 하지만 손에 들어보면 이야기가 완전히 다르다.

 

[DW-5600UE-1 제품 사진]

 

 

외형은 단순하지만 지샥답게 내충격 구조와 200m 방수를 갖췄다.

여기에 Tough Solar가 적용돼 별도의 주기적인 배터리 교체 부담도 줄였다.

화려한 기능보다는 튼튼하고 가볍게 사용할 수 있는 지샥을 찾는다면 가장 먼저 떠올릴 만한 모델이다.

RM처럼 고가의 시계를 다양하게 착용하는 사람이 이런 기본형 지샥도 함께 사용한다는 점도 재미있는 부분이다.

 

GMW-B5000D-1 구매하기: 130,000원
[RM 시계 링크]


6. 트와이스 채영의 빈티지 카시오

CASIO LA670WA-1

 

[채영 착용 사진]

 

 

카시오는 큰 남성용 전자시계만 잘 만드는 브랜드가 아니다.

트와이스 채영이 착용한 것으로 알려진 LA670WA-1은 그 반대편에 있는 시계다.

채영의 카시오 착용 사례 자체도 국내 매체에서 소개된 적이 있다. 

작고 얇은 디지털 화면과 가느다란 메탈 밴드 때문에 액세서리에 가까운 느낌이다.

 

[LA670WA-1 제품 사진]

 

 

케이스는 30.3 × 24.6mm, 무게는 26g에 불과하다. 알람과 스톱워치, 프리셋 타이머 정도의 기능을 갖췄다.

이 디자인은 1988년부터 이어져 왔고 일본 굿 디자인 장수 디자인상도 받은 바 있다. 

요즘 유행하는 빈티지 스타일과도 잘 맞지만, 사실 유행하기 훨씬 전부터 있던 시계다.

 

LA670WA-1 구매하기: 66,000원
[채영 시계 링크]


7. 이승기의 계산기 시계

CASIO DBC-611

 

[이승기 착용 사진]

 

 

 

마지막은 가장 카시오다운 시계다.

이승기가 착용한 것으로 알려진 DBC-611은 다이얼 아래 숫자 키패드가 붙어 있는 데이터뱅크 시리즈다.

실버 DBC-611-1과 골드 DBC-611G-1 모두 판매되고 있다.

처음 보면 장난감 같지만 실제로 계산기가 작동한다.

 

 

 

[DBC-611 제품 사진]

 

 

8자리 계산기는 물론 전화번호 데이터를 최대 25개 저장할 수 있고,

듀얼 타임과 5개의 알람, 스톱워치, LED 조명까지 들어 있다.

지금 기준에서는 스마트폰이 전부 대신할 수 있는 기능이지만, 오히려 그 점 때문에 더 레트로하게 느껴진다. 

평범한 전자시계가 지겹다면 이만큼 확실한 캐릭터를 가진 카시오도 드물다.

 

DBC-611 구매하기: 170,000원
[이승기 시계 링크]


비싸지 않아도 이야기가 있는 시계

7개를 모아놓고 보면 카시오가 재미있는 이유가 확실하다.

손석희의 A158WA처럼 몇 만 원이면 살 수 있는 시계도 있고,

주우재의 GM-5600B처럼 카시오 안에서는 제법 고가인 시계도 있다.

다이버 워치, 지샥, 아날로그 수능 시계, 계산기 시계까지 디자인도 제각각이다.

 

그런데 공통점은 하나 있다. 가격보다 먼저 시계 자체의 캐릭터가 보인다는 것.

그래서 카시오는 유명인이 착용해도 '저 사람이 왜 저렴한 시계를 찼지?'에서 끝나지 않는다.

오히려 어떤 모델인지 한 번 더 찾아보게 된다.

 

다음 편에서는 여기서 다루지 않은 해외 유명인들이 실제로 착용한 카시오 시계를 따로 모아볼 예정이다.

728x90
반응형
728x90
반응형

손목시계를 찾아보다 보면 쿼츠, 오토매틱, 수동식, 에코드라이브, 솔라 쿼츠, 핸드 와인딩
같은 단어를 자주 접하게 됩니다.

 

전부 시계의 종류를 나타내는 말처럼 보이지만,

정확히는 시계가 어떤 방식으로 에너지를 얻고 시간을 움직이는지를 구분하는 용어입니다.

 

가장 크게 보면 손목시계는 기계식과 쿼츠 방식으로 나눌 수 있습니다.

조금 더 쉽게 구분하면 쿼츠, 오토매틱, 수동 기계식, 솔라 쿼츠 정도로 정리할 수 있습니다.

이번 글에서는 각각 어떤 방식으로 움직이는지와 함께 실제 사용하면서 느낄 수 있는 특징과 장단점을 정리해보겠습니다.

1. 쿼츠 시계

 

쿼츠 참조 이미지 (실제 내부 부품들의 위치와는 차이가 있을 수 있음)

 

쿼츠는 우리가 일상에서 가장 흔하게 볼 수 있는 손목시계 방식입니다.

배터리에서 공급되는 전기로 수정 진동자를 일정한 주기로 진동시키고, 그 진동을 기준으로 시간을 측정합니다.

흔히 말하는 '건전지 시계'가 대부분 여기에 해당합니다.

특징

쿼츠의 가장 큰 특징은 정확도입니다.

일반적인 기계식 시계가 하루 단위로 오차를 이야기하는 것과 달리

쿼츠는 보통 월 단위로 오차를 이야기할 정도로 정확합니다.

내부 부품 수도 상대적으로 적어 충격이나 사용 환경에도 비교적 강한 편입니다.

장점

  • 기계식보다 시간 오차가 적습니다.
  • 몇 년에 한 번 배터리를 교체하는 정도로 관리가 간단합니다.
  • 비교적 얇고 가볍게 만들 수 있습니다.
  • 저가부터 고가까지 선택지가 굉장히 많습니다.
  • 며칠 동안 착용하지 않아도 계속 시간이 맞습니다.

단점

  • 일정 기간마다 배터리를 교체해야 합니다.
  • 기계식 무브먼트 자체를 즐기는 재미는 상대적으로 적습니다.
  • 일반 쿼츠는 초침이 1초 단위로 끊겨 움직이는 경우가 많아 이를 선호하지 않는 사람도 있습니다.

대표적인 제품

가격대 제품 특징
10만 원 전후 Casio MTP 시리즈 부담 없이 사용할 수 있는 기본 쿼츠
60만 원대 Tissot PRX Quartz 일체형 브레이슬릿 디자인으로 인기
Hamilton Khaki Field Quartz 필드 워치와 쿼츠의 편의성을 결합
300만 원 이상 Grand Seiko 9F Quartz 고급 쿼츠를 대표하는 라인

 

이런 사람에게 추천

시간이 정확한 것이 가장 중요하고, 별다른 관리 없이 편하게 착용하고 싶은 사람에게 가장 잘 맞습니다.


2. 오토매틱 시계

오토매틱 참조 이미지 (실제 내부 부품들의 위치와는 차이가 있을 수 있음)

 

오토매틱은 배터리가 아니라 태엽의 힘으로 작동하는 기계식 시계입니다.

내부에 로터라는 회전 부품이 들어 있고 손목을 움직일 때마다 로터가 움직이면서 메인스프링을 자동으로 감아줍니다.

그래서 자주 착용한다면 매번 직접 태엽을 감지 않아도 됩니다.

특징

오토매틱 시계는 전자적인 방식이 아니라 수많은 기계 부품이 서로 맞물리면서 시간을 표시합니다.

초침도 쿼츠처럼 1초마다 크게 끊기는 것이 아니라 짧은 간격으로 여러 번 움직이기 때문에

눈으로 봤을 때 상대적으로 부드럽게 움직입니다.

시계 뒷면을 투명하게 만든 시스루 케이스백 제품에서는 로터와 무브먼트가 움직이는 모습을 직접 볼 수도 있습니다.

장점

  • 배터리를 주기적으로 교체할 필요가 없습니다.
  • 무브먼트 구조 자체를 감상하는 재미가 있습니다.
  • 초침 움직임이 비교적 부드럽습니다.
  • 기계식 시계 특유의 감성을 느낄 수 있습니다.
  • 저가 입문용부터 하이엔드까지 선택 폭이 넓습니다.

단점

  • 쿼츠보다 정확도가 떨어집니다.
  • 며칠 착용하지 않으면 동력이 떨어져 시계가 멈출 수 있습니다.
  • 일정 기간 사용한 뒤 오버홀 등 정비가 필요할 수 있습니다.
  • 같은 가격대의 쿼츠보다 관리 비용이 높은 편입니다.
  • 충격이나 자기장 등에 비교적 민감할 수 있습니다.

대표적인 제품

가격대 제품 특징
30만 원에서 50만 원 Seiko 5 Sports 대표적인 오토매틱 입문 모델
100만 원 전후 Hamilton Khaki Field Auto 필드 워치의 대표적인 제품
100만 원대 Tissot PRX Powermatic 80 긴 파워리저브가 특징
300만 원 이상 Longines Conquest 스위스 중급 오토매틱
1,000만 원 이상 Rolex Submariner 럭셔리 오토매틱의 대표 모델

이런 사람에게 추천

시간을 확인하는 도구보다는 손목시계 자체를 하나의 취미로 즐기고 싶은 사람에게 가장 추천하기 좋은 방식입니다.


3. 수동 기계식 시계

수동 참조 이미지 (실제 내부 부품들의 위치와는 차이가 있을 수 있음)

 

수동 기계식은 영어로 Hand-winding 또는 Manual Winding이라고 부릅니다.

오토매틱과 마찬가지로 태엽의 힘으로 움직이지만 자동으로 태엽을 감아주는 로터가 없습니다.

따라서 사용자가 직접 크라운을 돌려 태엽을 감아줘야 합니다.

특징

구조적으로 보면 오토매틱보다 전통적인 기계식 시계에 가깝습니다.

직접 크라운을 돌리면서 태엽을 감고, 감아놓은 동력이 떨어지기 전에 다시 감아줘야 합니다.

이 과정이 불편하게 느껴질 수도 있지만,

반대로 수동 시계를 좋아하는 사람에게는 매일 시계와 직접 상호작용하는 과정 자체가 매력입니다.

로터가 없기 때문에 시스루 케이스백을 통해 무브먼트를 볼 때 전체적인 구조도 잘 보입니다.

장점

  • 기계식 무브먼트 자체를 즐기기 좋습니다.
  • 매일 직접 태엽을 감는 재미가 있습니다.
  • 로터가 없어 비교적 얇은 설계가 가능합니다.
  • 무브먼트 전체를 감상하기 좋습니다.
  • 기계식 시계의 전통적인 구조를 경험할 수 있습니다.

단점

  • 직접 태엽을 감아줘야 합니다.
  • 착용하지 않아도 일정 시간이 지나면 멈춥니다.
  • 쿼츠보다 시간 오차가 큽니다.
  • 주기적인 정비가 필요할 수 있습니다.
  • 시계를 편하게 사용하려는 사람에게는 번거로울 수 있습니다.

대표적인 제품

가격대 제품 특징
100만 원 전후 Hamilton Khaki Field Mechanical 수동 시계 입문의 대표 모델
300만 원 이상 NOMOS Tangente 독일식 미니멀 디자인
1,000만 원 이상 Omega Speedmaster Moonwatch 대표적인 수동 크로노그래프
고가 Grand Seiko 수동 기계식 무브먼트와 마감을 중시하는 고급 시계

이런 사람에게 추천

시계를 최대한 편하게 사용하고 싶은 사람보다는

직접 태엽을 감고 관리하는 과정까지 취미로 즐기고 싶은 사람에게 어울립니다.


4. 솔라 쿼츠

솔라 쿼츠 참조 이미지 (실제 내부 부품 위치와는 차이가 있을 수 있음)

 

기본적인 시간 측정 원리는 일반 쿼츠와 비슷하지만 빛을 전기에너지로 바꿔 내부 충전지를 충전한다는 차이가 있습니다.

Citizen은 Eco-Drive, Casio는 Tough Solar라는 이름을 사용하고 있습니다.

특징

태양광만 사용할 수 있다고 생각하기 쉽지만 대부분의 솔라 시계는 실내 조명에서도 어느 정도 충전할 수 있습니다.

충전된 전기를 내부에 저장하기 때문에 충분히 충전해두면 빛이 없는 환경에서도 상당 기간 작동합니다.

즉 쿼츠의 정확도와 편의성을 유지하면서 일반적인 배터리 교체 부담을 줄인 방식이라고 볼 수 있습니다.

장점

  • 쿼츠 수준의 높은 정확도를 가집니다.
  • 일반적인 배터리 교체 횟수를 크게 줄일 수 있습니다.
  • 관리가 상당히 편합니다.
  • 오랫동안 착용하지 않아도 비교적 오래 작동합니다.
  • G-Shock이나 다이버 등 실용적인 시계에서 많이 활용됩니다.

단점

  • 장기간 빛을 받지 못하면 충전량이 줄어듭니다.
  • 내부 충전지도 영구적으로 사용하는 부품은 아닙니다.
  • 기계식 시계의 구조적인 재미는 적습니다.
  • 완전히 방전된 경우 다시 충분히 충전하는 데 시간이 필요할 수 있습니다.

대표적인 제품

가격대 제품 특징
10만 원 이상 Casio G-Shock Tough Solar 높은 내구성과 솔라 충전
30만 원 이상 Citizen Eco-Drive 시티즌을 대표하는 광발전 라인
40만 원 이상 Citizen Promaster Eco-Drive 스포츠와 다이버 계열
60만 원 이상 Seiko Prospex Solar 스포츠 워치 중심의 솔라 라인

이런 사람에게 추천

쿼츠의 정확도와 관리 편의성을 좋아하지만

배터리를 주기적으로 교체하는 것까지 귀찮게 느껴진다면 가장 실용적인 선택 중 하나입니다.


한눈에 비교하기

 

방식 동력 정확도 관리 가장 큰 특징
쿼츠 배터리 매우 높음 쉬움 정확하고 저렴함
오토매틱 태엽 보통 비교적 필요 자동으로 태엽 충전
수동 기계식 태엽 보통 비교적 필요 직접 태엽을 감음
솔라 쿼츠 빛 매우 높음 매우 쉬움 빛으로 충전

 

 

결국 어떤 방식이 가장 좋다고 말하기는 어렵습니다.

편하고 정확한 시계를 원한다면 쿼츠가 좋고, 관리 부담까지 최소화하고 싶다면 솔라 쿼츠가 잘 맞습니다.

반대로 시계 자체를 취미로 즐겨보고 싶다면 오토매틱이 가장 접근하기 쉽고,

직접 태엽을 감는 과정까지 즐기고 싶다면 수동 기계식이 매력적인 선택이 될 수 있습니다.

 

다음 글에서는 작동 방식이 아니라 다이버, 드레스, 필드, 파일럿처럼

디자인과 사용 목적을 기준으로 손목시계의 종류를 나눠보겠습니다.

728x90
반응형
728x90
반응형

구분

 

데이터 분석 관련 자격증을 찾아보면 가장 자주 언급되는 자격증 중 하나가 ADsP입니다.

ADsP는 데이터 분석을 처음 공부하는 사람도 응시할 수 있고,

별도의 실기시험이나 응시 자격이 없다는 점에서 데이터 분야 입문용 자격증으로 접근하기 좋은 편입니다.

저는 약 3주 정도 준비해서 합격했고, 공부할 때는 흔히 '미어캣 책'이라고 불리는

이지패스 ADsP 데이터분석 준전문가 교재와 교재에서 제공하는 문제풀이 앱을 주로 이용했습니다.

먼저 시험 자체가 어떻게 구성되어 있는지부터 정리해보겠습니다.


ADsP란?

ADsP는 Advanced Data Analytics Semi-Professional의 약자로, 우리말로는 데이터분석 준전문가입니다.

한국데이터산업진흥원에서 시행하는 국가공인민간자격으로, 데이터를 이해하고 분석 업무를 기획하며

기본적인 통계 분석과 데이터 마이닝 방법을 이해하고 있는지를 평가하는 시험입니다.

ADsP의 가장 큰 특징은 데이터 분석 자격증이지만 실제 프로그래밍 실력을 평가하는 실기시험은 없다는 점입니다.

응시 자격에도 제한이 없기 때문에 전공, 학력, 경력과 관계없이 바로 시험에 응시할 수 있습니다.

ADsP 기본 정보

자격명 데이터분석 준전문가
영문명 Advanced Data Analytics Semi-Professional
약칭 ADsP
시행기관 한국데이터산업진흥원
자격 종류 국가공인민간자격
응시 자격 제한 없음
시험 구성 필기시험 1회
시험 시간 90분
총 문항 50문항
총점 100점
합격 기준 총점 60점 이상
과락 기준 각 과목 40% 미만
응시료 50,000원
자격 유효기간 영구

 

한국데이터산업진흥원 공식 안내 기준으로 ADsP의 응시료는 50,000원이며,
취득한 자격에는 별도의 유효기간이 없습니다.


ADsP 시험은 어떻게 나오나?

ADsP는 총 3과목을 봅니다.

과목 문항 수   배점
1과목 데이터 이해 10문항 20점
2과목 데이터분석 기획 10문항 20점
3과목 데이터분석 30문항 60점
합계 50문항 100점

 

모든 문제의 배점은 2점입니다.

특히 3과목 데이터분석이 30문항으로 전체 시험의 60%를 차지하기 때문에

시험 준비에서도 가장 중요한 과목이라고 할 수 있습니다.


ADsP 합격 기준

ADsP는 100점 만점에 60점 이상을 받으면 합격입니다.

다만 한 가지 조건이 더 있습니다.

바로 과목별 과락입니다.

각 과목에서 40% 미만의 점수를 받으면 총점이 60점을 넘더라도 불합격합니다.

 

예를 들어

과목 만점 과락 기준
데이터 이해 20점 8점 미만
데이터 분석 기획 20점 8점 미만
데이터 분석 60점 24점 미만

 

이기 때문에 한 과목을 완전히 포기하고 다른 과목에서 점수를 채우는 전략은 사용할 수 없습니다.

모든 문제가 2점이므로 단순하게 생각하면 1과목과 2과목에서는 각각 최소 4문제 이상,

3과목에서는 최소 12문제 이상을 맞혀야 과락을 피할 수 있습니다.

물론 이것은 과락만 피하기 위한 최소 기준이고, 최종적으로 세 과목을 합쳐 60점 이상을 받아야 합니다.


ADsP는 실기시험이 없다

ADsP를 처음 알아볼 때 ADP나 빅데이터분석기사와 혼동하기 쉬운데, ADsP에는 별도의 실기시험이 없습니다.

시험 접수 후 필기시험을 보고 합격 여부가 발표되면 끝입니다.

공식적으로도 ADsP 취득 과정은 시험 접수, 수험표 발급, 검정시험 응시, 합격 여부 확인 순으로 안내되어 있습니다.

따라서 Python이나 R을 직접 실행해서 데이터를 분석하는 능력을 평가하는 자격증이라기보다는 데이터 분석에 필요한 기본 개념과 통계, 분석 방법론을 알고 있는지를 확인하는 시험에 가깝습니다.


ADsP 시험 신청 방법

시험은 한국데이터산업진흥원에서 운영하는 데이터자격시험 홈페이지 DataQ에서 신청할 수 있습니다.

홈페이지에서 시험 일정 확인부터 접수, 수험표 출력, 결과 확인, 자격증 발급까지 진행할 수 있습니다.

일반적인 순서는 다음과 같습니다.

  1. DataQ 홈페이지 회원가입 및 로그인
  2. ADsP 시험 일정 확인
  3. 접수 기간에 시험 신청
  4. 응시료 50,000원 결제
  5. 수험표 및 시험장 확인
  6. 시험 응시
  7. 결과 확인

시험 일정과 시험장은 회차마다 달라질 수 있으므로 접수할 때 공식 홈페이지에서 확인하는 것이 가장 정확합니다.

 

데이터자격검정 홈페이지


ADsP 공부 기간은 어느 정도?

저는 약 3주 정도 공부하고 합격했습니다.

다만 3주라는 기간이 모든 사람에게 그대로 적용된다고 보기는 어렵습니다.

통계나 데이터 분석을 한 번이라도 공부해본 사람이라면 3과목의 일부 내용이 익숙할 수 있고, 반대로 통계를 처음 접한다면 3과목을 이해하는 데 시간이 더 필요할 수 있습니다.

제 경우에는 책을 여러 권 보는 것보다 한 권으로 개념을 빠르게 정리한 뒤 문제를 반복해서 푸는 방식으로 준비했습니다.


내가 사용한 교재

이지패스 미어캣책

 

제가 사용한 교재는 이지패스 ADsP 데이터분석 준전문가입니다.

(https://product.kyobobook.co.kr/detail/S000218736039)

ADsP를 준비하는 사람들 사이에서는 표지 때문에 흔히 '미어캣 책'이라고 부르는 책입니다.

저는 다른 교재를 여러 권 병행하지 않고 이 책을 중심으로 공부했습니다.

처음에는 책을 보면서 1과목부터 3과목까지 전체적인 개념을 한 번 정리했습니다.

첫 회독부터 모든 내용을 외우려고 하지는 않았습니다.

ADsP는 범위가 생각보다 넓고 생소한 용어도 많기 때문에

처음부터 세세한 내용을 전부 암기하려고 하면 진도가 잘 나가지 않았습니다.

그래서 첫 번째로 볼 때는

"이 시험에서는 이런 내용을 공부하는구나."

정도로 전체적인 구조를 파악하는 데 집중했습니다.


가장 많이 활용한 것은 문제풀이 앱

미어캣 어플

 

책도 많이 사용했지만 실제 공부할 때 가장 자주 사용한 것은 교재에서 제공하는 문제풀이 앱이었습니다.

제가 사용한 이지패스 교재의 앞부분을 보면 코드를 입력해서 사용할 수 있는 문제풀이 서비스가 제공됩니다.

이게 생각보다 공부할 때 굉장히 편했습니다.

책을 가지고 다니지 않아도 휴대폰으로 바로 문제를 풀 수 있어서 등하교할 때나 이동할 때, 약속을 기다릴 때처럼 애매하게 남는 시간에 계속 문제를 풀었습니다.

ADsP를 준비하면서 따로 책상에 앉아서 공부하는 시간도 있었지만, 실제 문제를 접한 횟수만 보면 이런 자투리 시간에 푼 문제가 훨씬 많았습니다.


문제를 많이 푸는 것이 중요한 이유

ADsP는 범위가 넓습니다.

처음 책을 읽으면

"이걸 다 외워야 하나?"

싶을 정도로 용어가 많이 나옵니다.

그런데 문제를 계속 풀어보면 자주 등장하는 개념이나 헷갈리게 만드는 포인트가

어느 정도 반복된다는 것을 알 수 있습니다.

그래서 저는 개념서를 계속 처음부터 다시 읽기보다는

개념을 한 번 확인하고, 문제를 풀고, 틀린 부분만 다시 책에서 찾아보는 방식으로 공부했습니다.

예를 들어 문제를 풀다가 분석 방법론의 순서나 통계 개념을 틀렸다면 해당 부분을 책에서 다시 확인했습니다.

이렇게 공부하면 내가 알고 있다고 생각했지만 실제로는 정확하게 구분하지 못했던 개념도 쉽게 찾을 수 있었습니다.


내가 공부한 방법 정리

저는 대략 다음과 같은 방식으로 준비했습니다.

구분 공부 방법
공부 기간 약 3주
주교재 이지패스 ADsP 데이터분석 준전문가
개념 공부 교재로 1, 2, 3과목 전체 범위 정리
문제 풀이 교재 문제와 문제풀이 앱 활용
자투리 시간 등하교와 이동시간에 앱으로 반복 풀이
오답 정리 틀린 문제의 개념을 교재에서 다시 확인
후반부 문제 풀이 비중을 높여 반복

 

제 경우에는 개념서를 여러 번 정독하는 것보다 한 번 전체적인 내용을 잡은 뒤

문제를 많이 풀어보는 방식이 더 잘 맞았습니다.

특히 문제풀이 앱을 이용하면 책상에 앉아 있지 않아도

문제를 계속 접할 수 있어서 3주라는 비교적 짧은 기간에도 공부량을 확보하기 좋았습니다.


ADsP를 공부하고 느낀 점

ADsP는 데이터 분석을 깊게 다루는 자격증이라기보다는

데이터 분석 분야에서 사용하는 여러 개념을 한 번 전체적으로 훑어볼 수 있는 자격증에 가깝다고 느꼈습니다.

데이터의 개념에서 시작해 분석 프로젝트를 어떻게 기획하는지, 통계 분석에는 어떤 방법이 있는지,

데이터 마이닝에는 어떤 기법이 있는지까지 폭넓게 공부하게 됩니다.

 

그래서 데이터 분석이나 데이터 사이언스 분야를 처음 공부한다면

전체적인 지도를 그린다는 느낌으로 접근하기 좋습니다.

반대로 합격 자체가 목적이라면 모든 내용을 깊게 공부하기보다는

시험에 반복적으로 등장하는 개념을 정확하게 구분하고,

문제를 많이 풀면서 익숙해지는 것이 더 효율적이라고 생각합니다.

제 경우에는 미어캣 책으로 개념을 잡고,

문제풀이 앱을 이용해 이동시간까지 최대한 활용하는 방식으로 약 3주 만에 합격할 수 있었습니다.

728x90
반응형
728x90
반응형

토익스피킹(TOEIC Speaking) 시험 개요

토익스피킹은 영어로 실제 의사소통을 할 수 있는지를 평가하는 말하기 시험입니다.

단순히 영어 문법이나 어휘를 알고 있는지를 묻기보다는,

주어진 상황에서 정보를 전달하고 질문에 답하거나 자신의 의견을 영어로 표현하는 능력을 평가합니다.

TOEIC 프로그램은 미국의 비영리 교육평가기관인 **ETS(Educational Testing Service)**가 개발하며,

국내에서는 YBM 한국TOEIC위원회를 통해 시험 접수와 시행이 이루어집니다.

 

시험은 총 11문항, 약 20분으로 진행되며 점수는 0점부터 200점까지입니다.

시험장에서 컴퓨터와 헤드셋을 이용해 문제를 듣고 마이크에 직접 답변을 녹음하는 방식입니다.

토익스피킹 문제 구성

 

전체적으로 보면 읽기, 사진 묘사, 즉답, 자료 해석, 의견 말하기 순서로 난도가 올라가는 구조입니다.

특히 고득점을 목표로 한다면 11번처럼 자신의 의견을 이유와 예시까지 붙여 일정 시간 동안 이어서 말하는 연습이 중요합니다.


토익스피킹 점수와 등급

현재 토익스피킹은 0점부터 200점까지 10점 단위의 점수와 함께 ACTFL 기반 등급이 제공됩니다.

공식 기준은 다음과 같습니다.

점수 등급 약칭
200 Advanced High AH
180~190 Advanced Mid AM
160~170 Advanced Low AL
140~150 Intermediate High IH
130 Intermediate Mid 3 IM3
120 Intermediate Mid 2 IM2
110 Intermediate Mid 1 IM1
90~100 Intermediate Low IL
60~80 Novice High NH
0~50 Novice Mid / Low NM/NL

따라서 흔히 취업 준비 과정에서 많이 이야기하는 토스 AL은 160점 또는 170점에 해당합니다.

공식 통계상 TOEIC L/R과 단순 비교할 수 있는 시험은 아니지만,

두 시험을 모두 응시한 국내 수험자를 분석한 YBM 자료에서는 AL 응시자의 TOEIC 평균이 895점으로 나타났습니다.
다만 이는 환산점수가 아니라 통계적인 상관관계이므로 참고 정도로 보는 것이 좋습니다.


응시료

2026년 현재 TOEIC Speaking 단독 응시료는 다음과 같습니다.

 

84,000원

 

부가세가 포함된 금액입니다. 인터넷 접수 시 신용카드, 계좌이체, 휴대폰 결제 등을 이용할 수 있습니다.

생각보다 비싼 시험이라 가능하다면 시험을 여러 번 보기보다는 문제 유형과 시간 제한을 충분히 익힌 다음 응시하는 것을 추천합니다.


시험 신청 방법

시험은 TOEIC Speaking 공식 홈페이지에서 신청할 수 있습니다.

접수 과정 자체는 어렵지 않습니다.

  1. TOEIC Speaking 홈페이지 접속
  2. 시험접수에서 TOEIC Speaking Test 선택
  3. 응시할 날짜와 시간 선택
  4. 시험센터 선택
  5. 개인정보 및 사진 확인
  6. 응시료 결제
  7. 접수 완료

2026년 시험 일정을 보면 토요일과 일요일을 중심으로 시험이 매우 자주 시행되고 있습니다.

시험에 따라 성적 조기 발표 일정도 별도로 운영됩니다.


시험은 어디에서 보나?

토익스피킹은 일반 TOEIC처럼 학교 교실에서 OMR 카드에 답을 작성하는 시험이 아닙니다.

 

TOEIC Speaking 시험센터에 직접 방문해 컴퓨터와 헤드셋을 이용해서 응시합니다.

 

시험센터는 서울에만 있는 것이 아니라 전국 여러 지역에 운영되고 있으며,

접수할 때 원하는 지역의 시험센터와 남은 좌석을 확인한 뒤 선택할 수 있습니다.

센터 상황에 따라 시험 일정이 달라지거나 조기 마감될 수 있기 때문에

원하는 장소가 있다면 미리 접수하는 것이 좋습니다. 

 

토익스피킹 시험센터 확인

 

그리고 토익스피킹은 같은 공간에서 여러 사람이 동시에 말하는 시험이라는 점도 알아두면 좋습니다.

평소 혼자 조용한 방에서 연습하다가 시험장에 가면 주변에서 동시에 영어로 말하는 소리가 들리기 때문에

처음에는 생각보다 신경 쓰일 수 있습니다. 결국 헤드셋을 끼고 자기 답변에 집중하는 것이 중요합니다.


시험 당일 진행 방식

시험장에 도착하면 안내에 따라 지정된 좌석에 앉고 헤드셋과 마이크 상태 등을 확인한 뒤 시험을 진행합니다.

시험 자체는 약 20분이지만 입실과 사전 안내 시간이 있기 때문에 실제 체류 시간은 더 길게 잡는 것이 좋습니다.

또한 정해진 입실 금지 시각 이후 도착하면 시험에 응시할 수 없습니다.

 

예를 들어 10시 30분 시험이라면 10시 30분부터 10시 39분까지 입실할 수 있고 10시 40분부터는 입실할 수 없습니다.

개인적으로는 시험 시작 시각에 딱 맞춰 가기보다는 조금 일찍 도착해서 화장실도 다녀오고,

마지막으로 자주 쓰는 표현 정도만 확인하는 편을 추천합니다.


일주일 공부 AL 받기

먼저 제 공부 방법은 완전한 영어 노베이스를 기준으로 한 공부법은 아닙니다.

평소 미드와 영드를 좋아해서 영어를 꾸준히 접해왔고, 영어 공부를 완전히 놓았던 기간도 거의 없었습니다.

특히 카투사로 복무하면서 실제로 영어로 대화해야 하는 상황을 많이 경험했기 때문에, 영어 문장을 입 밖으로 꺼내는 것 자체에 대한 부담은 비교적 적은 편이었습니다.

 

그래서 처음부터 문법이나 회화 공부를 다시 하기보다는 토익스피킹이라는 시험에 적응하는 데 집중했습니다.

제 경우 공부 기간은 약 일주일이었고, 크게 두 가지만 반복했습니다.

1. 토오미 모의고사

가장 많이 활용한 자료는 토오미 유튜브의 토스 극최신 모의고사였습니다.

 

토오미 토스 극최신 모의고사 재생목록(링크)

 

영상을 그냥 보는 것보다는 실제 시험을 본다는 생각으로 혼자 처음부터 끝까지 답했습니다.

처음에는 답변 시간이 생각보다 굉장히 짧게 느껴졌습니다.
평소 영어로 대화를 할 수 있는 것과 3초 안에 생각을 정리하고 15초, 30초 안에 필요한 내용을 말하는 것은조금 다른 문제였습니다.

그래서 모의고사를 반복하면서 영어 실력 자체를 올린다기보다,

 

문제를 듣는다 → 바로 말할 내용을 정한다 → 제한 시간 안에 답을 끝낸다

 

이 과정에 익숙해지는 데 집중했습니다.

특히 실제 시험처럼 중간에 멈추거나 다시 시작하지 않고 끝까지 풀어보는 것이 도움이 됐습니다.

2. 시계토끼 제니쌤 만능문장 듣기

두 번째는 자주 사용할 표현을 아예 입에 익히는 것이었습니다.

이때 시계토끼 제니쌤의 토익스피킹 만능문장 자료를 많이 활용했습니다.

 

시계토끼 제니쌤 만능문장(URL)

다만 책상에 앉아서 문장을 하나씩 외우는 식으로 공부하지는 않았습니다.

학교에 갈 때, 집에 올 때, 자기 전처럼 따로 공부하기 애매한 시간에 그냥 계속 틀어놨습니다.

처음에는 흘려듣다가 익숙해진 문장들이 생기면 실제 모의고사를 풀 때 가져다 쓰는 식이었습니다.

토익스피킹은 매번 완전히 새로운 문장을 만들어내려고 하면 생각보다 시간이 부족합니다. 그래서

내가 자주 사용할 문장 구조와 단어를 미리 만들어 놓고, 문제에 맞게 내용만 바꾸는 방식

 

이 훨씬 편했습니다.

728x90
반응형
728x90
반응형

정보처리기사를 준비하면서 필기와 실기의 공부 방법을 조금 다르게 가져갔다.
필기는 기출문제를 최대한 많이 풀었고, 실기는 개념을 정리하면서 문제를 직접 풀어보는 데 집중했다.

이번 글에서는 정보처리기사 시험에 대한 간단한 정보와 실제로 공부하면서 사용했던 교재와 사이트를 정리해보려고 한다.

 

정보처리기사란?

정보처리기사는 한국산업인력공단에서 시행하는 국가기술자격이다.


소프트웨어 설계와 개발부터 데이터베이스, 프로그래밍 언어, 정보시스템 구축 및 관리까지 IT 전반의 내용을 다룬다.

시험 접수와 일정 확인은 Q-Net에서 할 수 있다.

Q-Net 정보처리기사 종목 정보

시험 방식

구분 필기 실기
시험 방식 CBT 객관식 필답형
문제 형태 4지선다형 주관식
시험 시간 과목당 30분, 총 2시간 30분 2시간 30분
합격 기준 과목당 40점 이상, 전 과목 평균 60점 이상 60점 이상
응시료 19,400원 22,600원

 

필기는 총 5과목이며 과목당 20문제씩 총 100문제가 출제된다.
컴퓨터를 이용하는 CBT 방식이라 시험장에서 문제를 풀고 답안을 컴퓨터로 제출한다.

 

실기는 '정보처리실무' 한 과목으로 진행되며, 필기와 달리 필답형 시험이다.
문제지에 직접 답을 작성해야 하기 때문에 단순히 정답을 알아보는 것보다
정확한 용어나 코드 실행 결과를 직접 적을 수 있어야 한다.

언제, 어디에서 시험을 볼까?

정보처리기사는 일반적으로 정기 기사 시험 일정에 따라 연 3회 시행된다.

2026년에도 정기 기사 1회, 2회, 3회로 나누어 시행되고 있다.

필기는 일정 기간 동안 여러 날짜에 CBT 방식으로 진행되기 때문에

원서접수 시 원하는 지역과 시험장, 날짜, 시간을 선택하는 방식이다.

 

반면 실기는 회차별로 정해진 시험 기간에 시행되며,

원서접수 시 선택 가능한 시험장을 확인해 접수하게 된다.

시험장은 회차와 지역에 따라 달라지므로 접수할 때 Q-Net에서 직접 확인하는 것이 가장 정확하다.

개인적으로는 원하는 시험장이 빠르게 마감될 수 있어서 원서접수 시작일을 미리 확인해두는 것을 추천한다.

정보처리기사 시험

정보처리기사는 필기와 실기로 구성되어 있다.

필기는 소프트웨어 설계, 소프트웨어 개발, 데이터베이스 구축, 프로그래밍 언어 활용, 정보시스템 구축관리
총 5과목으로 구성된다.

 

실기는 정보처리 실무 한 과목으로,
프로그래밍, SQL, 데이터베이스, 네트워크, 보안, 소프트웨어 공학 등 필기에서 공부했던 내용을 보다 실전적인 형태로 다룬다. 

개인적으로는 필기와 실기의 시험 방식이 다른 만큼 공부 방법도 구분하는 것이 효율적이었다.


필기 공부 방법

1. 개념은 이기적 교재로 정리

필기 개념은 이기적 정보처리기사 교재를 활용했다.

이기적 개념서

처음부터 모든 내용을 세세하게 암기하기보다는 교재를 통해 전체적인 개념과 시험 범위를 파악했다.
이후 문제를 풀다가 반복해서 틀리는 부분이 나오면 다시 교재에서 해당 개념을 찾아보는 방식으로 공부했다.

2. 기출문제 위주로 문제 양치기

필기는 기출문제를 반복해서 풀어보는 것이 가장 도움이 됐다.

주로 아래 자료를 이용했다.

  • 전자문제집 CBT 정보처리기사 기출문제
  • 전자문제집 CBT 모바일
  • 시나공 정보처리기사 CBT

전자문제집 CBT에서는 실제 기출문제를 회차별로 풀어볼 수 있어서 시험 유형을 익히는 데 활용했다.

 

전자문제집 CBT 정보처리기사

전자문제집 CBT 모바일

 

필기는 문제은행식으로 대비하기 좋은 시험이라 개념서를 계속 읽기보다는 기출문제를 많이 풀고,
틀린 문제의 개념만 다시 확인하는 방식
으로 공부했다.


실기 공부 방법

실기는 필기와 달리 답을 직접 작성해야 하기 때문에 문제를 보고 답을 떠올리는 연습에 더 집중했다.

가장 많이 활용한 곳은 정처기 감자였다.

개념 정리

 

정처기 감자

 

무료의 경우는 하루 열람 개수 제한이 있기 때문에 3000원짜리를 구매해서 사용하는 것이 좋다고 생각한다.
(광고아님. 그냥 진짜 좋아보여서, 실제로 사용한 것)

정처기 감자에서 실기 개념을 정리하고 문제를 반복해서 풀었다.

특히 단답형 개념은 눈으로 읽고 넘어가기보다 문제를 보고 실제 답을 떠올릴 수 있는지를 확인하면서 공부했다.

프로그래밍과 SQL 문제 역시 답만 외우기보다는 코드의 실행 과정과 쿼리 결과를 직접 따라가면서 풀었다.

실기는 범위가 넓기 때문에 모든 내용을 완벽하게 암기하려 하기보다는

자주 나오는 개념을 반복하고, 틀리는 부분을 다시 확인하는 방식으로 준비했다.


정리

내 공부 방법을 간단하게 정리하면 다음과 같다.

필기: 이기적 교재로 개념 정리 → CBT와 시나공으로 기출문제 반복 → 틀린 개념 복습

실기: 정처기 감자로 개념 정리 → 문제 반복 풀이 → 단답형 암기 및 프로그래밍, SQL 연습

정보처리기사는 범위가 넓어서 처음부터 모든 내용을 완벽하게 공부하려고 하면 오히려 부담이 컸다.

개인적으로는 개념을 한 번 정리한 뒤 문제를 많이 풀면서 부족한 부분을 채우는 방식이 가장 잘 맞았다.

728x90
반응형
728x90
반응형

문제 설명

물류 센터에는 n개의 포인트가 존재하며, 각 포인트는 (r, c) 형태의 2차원 좌표를 가집니다.

여러 대의 로봇은 각각 정해진 운송 경로를 따라 이동합니다.

각 로봇의 경로에는 방문해야 하는 포인트 번호가 순서대로 주어지며, 로봇은 첫 번째 포인트에서 시작하여 나머지 포인트를 차례대로 방문합니다.

모든 로봇은 0초에 동시에 출발합니다.

로봇은 1초마다 다음과 같이 한 칸 이동할 수 있습니다.

  • r 좌표를 1 증가 또는 감소
  • c 좌표를 1 증가 또는 감소

로봇은 항상 다음 포인트까지 최단 경로로 이동합니다.

최단 경로가 여러 개 존재하는 경우에는

r 좌표를 먼저 이동한 뒤 c 좌표를 이동합니다.

마지막 포인트에 도착한 로봇은 운송을 종료하고 물류 센터를 벗어납니다.

같은 시간에 같은 좌표에 2대 이상의 로봇이 존재한다면 위험 상황이 1번 발생한 것으로 판단합니다.

같은 시간에 여러 좌표에서 위험 상황이 발생한다면 각각을 모두 계산해야 합니다.

모든 로봇의 운송이 끝날 때까지 발생하는 위험 상황의 총횟수를 구해야 합니다.


제한사항

  • 2 ≤ n ≤ 100
  • 각 포인트의 좌표는 (r, c) 형태로 주어집니다.
  • 1 ≤ r, c ≤ 100
  • 서로 다른 포인트가 같은 좌표를 가지는 경우는 없습니다.
  • 로봇의 수는 최대 100대입니다.
  • 각 로봇은 최대 100개의 포인트를 방문합니다.
  • 모든 로봇의 운송 경로 길이는 같습니다.
  • 같은 포인트를 연속으로 방문하는 경우는 없습니다.

입출력 예

pointsroutesresult

[[3, 2], [6, 4], [4, 7], [1, 4]] [[4, 2], [1, 3], [2, 4]] 1
[[3, 2], [6, 4], [4, 7], [1, 4]] [[4, 2], [1, 3], [4, 2], [4, 3]] 9
[[2, 2], [2, 3], [2, 7], [6, 6], [5, 2]] [[2, 3, 4, 5], [1, 3, 4, 5]] 0

문제 풀이

이 문제는 모든 로봇이 움직이는 과정을 직접 확인하는 시뮬레이션 문제입니다.

핵심은 각 로봇이

몇 초에 어떤 좌표에 있는지

를 구한 뒤, 같은 시간과 같은 좌표에 존재하는 로봇의 수를 세는 것입니다.

로봇의 이동 방법이 완전히 정해져 있기 때문에 각 로봇의 전체 이동 경로를 미리 구할 수 있습니다.


1. 포인트 번호를 실제 좌표로 변환하기

routes에는 좌표가 직접 들어 있는 것이 아니라 방문해야 하는 포인트 번호가 들어 있습니다.

예를 들어

points[0] = [3, 2]

라면 1번 포인트의 좌표는

(3, 2)

입니다.

따라서 로봇의 경로가

[4, 2]

라면 실제로는

4번 포인트의 좌표 → 2번 포인트의 좌표

순서대로 이동하게 됩니다.

각 로봇마다 방문할 포인트 번호를 실제 (r, c) 좌표로 변환하면서 이동 경로를 만들면 됩니다.


2. 로봇은 항상 r 좌표를 먼저 이동한다

현재 위치가

(r1, c1)

이고 다음 목적지가

(r2, c2)

라고 하겠습니다.

두 좌표 사이의 최단 거리는

|r1 - r2| + |c1 - c2|

입니다.

하지만 최단 경로는 여러 개 존재할 수 있습니다.

문제에서는 이동 방법까지 정해주었습니다.

최단 경로가 여러 개라면 r 좌표가 변하는 이동을 먼저 한다.

따라서 로봇은 먼저 r1을 r2와 같게 만든 뒤, c1을 c2와 같게 만들면 됩니다.

예를 들어

(1, 2) → (3, 4)

로 이동한다고 하겠습니다.

먼저 r 좌표를 이동하면

(1, 2) → (2, 2) → (3, 2)

가 됩니다.

그다음 c 좌표를 이동하면

(3, 2) → (3, 3) → (3, 4)

가 됩니다.

따라서 전체 이동 경로는

(1, 2) → (2, 2) → (3, 2) → (3, 3) → (3, 4)

로 하나로 결정됩니다.


3. 각 시간의 로봇 위치 기록하기

모든 로봇은 0초에 첫 번째 포인트에서 시작합니다.

따라서 출발 위치 역시 위험 상황을 판단할 때 포함해야 합니다.

예를 들어 어떤 로봇의 이동 경로가

(1, 2) → (2, 2) → (3, 2) → (3, 3)

이라면 시간에 따른 위치는 다음과 같습니다.

시간위치

0초 (1, 2)
1초 (2, 2)
2초 (3, 2)
3초 (3, 3)

따라서 각 로봇을 이동시키면서

시간 → 위치

정보를 기록할 수 있습니다.

모든 로봇에 대해 이 과정을 반복하면 특정 시간에 어떤 로봇들이 어느 좌표에 있었는지 확인할 수 있습니다.


4. 중간 포인트에 도착해도 다음 이동은 바로 이어진다

하나의 로봇은 여러 개의 포인트를 순서대로 방문합니다.

예를 들어 경로가

1번 → 3번 → 4번

이라고 하겠습니다.

로봇이 3번 포인트에 도착했다고 해서 한 번 더 정지하는 것은 아닙니다.

3번 포인트에 도착한 시간이 5초라면

  • 5초에는 3번 포인트에 존재하고
  • 6초에는 4번 포인트를 향해 한 칸 이동합니다.

따라서 각 구간을 연결할 때 중간 포인트의 위치를 중복해서 기록하지 않는 것이 중요합니다.


5. 같은 시간과 같은 좌표의 로봇 수를 센다

이제 모든 로봇의 위치를 시간별로 확인합니다.

특정 시간에 특정 좌표에 몇 대의 로봇이 존재하는지를 저장합니다.

예를 들어 5초의 로봇 위치가 다음과 같다고 하겠습니다.

로봇위치

1번 (3, 4)
2번 (3, 4)
3번 (2, 7)
4번 (5, 2)

(3, 4)에 로봇이 2대 존재하므로 위험 상황이 발생합니다.

따라서 이 시간에는 위험 상황을 1 증가시킵니다.


6. 로봇이 3대 이상 모여도 위험 상황은 1번이다

이 문제에서 특히 주의해야 할 부분입니다.

같은 시간, 같은 좌표에 로봇이 3대 있다고 하더라도 위험 상황을 로봇의 쌍 개수만큼 계산하는 것이 아닙니다.

예를 들어 한 좌표에 로봇이 3대 있다면

3C2 = 3

개의 충돌 가능성이 있다고 계산하는 것이 아니라,

해당 좌표에서 위험 상황이 발생했다는 사실 자체를 1번 계산합니다.

즉,

같은 좌표의 로봇 수위험 상황 횟수

1대 0
2대 1
3대 1
4대 1

입니다.

따라서 각 시간과 좌표에 대해 로봇의 수가 2 이상인지만 확인하면 됩니다.


7. 같은 시간에 여러 좌표에서 충돌하면 각각 계산한다

반대로 같은 시간에 서로 다른 여러 좌표에서 위험 상황이 발생할 수 있습니다.

예를 들어 10초에

  • (2, 3)에 로봇 2대
  • (5, 7)에 로봇 3대

가 있다고 하겠습니다.

두 좌표 모두 위험 상황이므로 해당 시간의 위험 상황은 총

2번

입니다.

즉, 위험 상황은

시간 + 좌표

를 하나의 기준으로 생각해야 합니다.


8. 마지막 포인트에 도착한 순간까지는 포함한다

로봇은 마지막 포인트에 도착하면 물류 센터를 벗어납니다.

따라서 마지막 포인트에 도착한 그 순간의 위치는 위험 상황 판단에 포함됩니다.

예를 들어 로봇이 7초에 마지막 포인트에 도착했다면

7초에는 해당 좌표에 존재합니다.

따라서 다른 로봇이 같은 7초에 같은 좌표에 있다면 위험 상황이 발생합니다.

하지만 8초부터는 물류 센터를 벗어났으므로 더 이상 위치를 확인하지 않습니다.


전체 흐름

문제를 해결하는 과정은 다음과 같습니다.

  1. 각 로봇의 첫 번째 포인트 좌표를 0초 위치로 기록합니다.
  2. 현재 포인트에서 다음 포인트로 이동합니다.
  3. r 좌표가 다르다면 r 좌표부터 목적지와 같아질 때까지 이동합니다.
  4. 이후 c 좌표가 같아질 때까지 이동합니다.
  5. 한 칸 이동할 때마다 시간을 1 증가시키고 현재 위치를 기록합니다.
  6. 모든 로봇의 전체 이동 경로에 대해 같은 시간과 같은 좌표에 몇 대의 로봇이 존재하는지 계산합니다.
  7. 로봇이 2대 이상 존재하는 (시간, 좌표)마다 위험 상황을 1씩 증가시킵니다.
  8. 모든 위험 상황의 수를 더해 반환합니다.

핵심 정리

이 문제는 로봇의 이동 경로가 정해져 있기 때문에 각 로봇의 위치를 시간 순서대로 시뮬레이션하는 것이 핵심입니다.

특히 다음 조건들을 정확하게 처리해야 합니다.

  • 모든 로봇은 0초의 시작 위치부터 위험 상황 판단에 포함됩니다.
  • 최단 경로 중 반드시 r 좌표를 먼저 이동합니다.
  • 중간 포인트에서는 별도로 대기하지 않습니다.
  • 같은 시간, 같은 좌표에 로봇이 2대 이상이면 위험 상황은 1번입니다.
  • 로봇이 3대 이상 있어도 위험 상황을 여러 번 세지 않습니다.
  • 같은 시간이라도 서로 다른 좌표에서 발생한 위험 상황은 각각 계산합니다.
  • 마지막 포인트에 도착한 순간까지는 위험 상황 판단에 포함됩니다.

결국 모든 로봇에 대해

시간 + 좌표

를 기록한 뒤, 동일한 값이 2번 이상 등장하는 경우를 세면 문제를 해결할 수 있습니다.


시간 복잡도

각 포인트의 좌표는 1 ~ 100 범위이므로 두 포인트 사이의 최대 맨해튼 거리는

99 + 99 = 198

입니다.

각 로봇이 방문하는 포인트의 개수를 M, 로봇의 수를 X라고 하면 한 로봇이 이동하는 최대 거리는 대략

O(M × 198)

입니다.

모든 로봇의 이동 경로를 확인하므로 전체 시간 복잡도는

O(X × M × D)

로 볼 수 있습니다.

여기서 D는 두 포인트 사이의 최대 이동 거리이며 최대 198입니다.

문제에서

  • 로봇의 수 X ≤ 100
  • 경로 길이 M ≤ 100
  • 한 구간의 이동 거리 D ≤ 198

이므로 모든 로봇의 이동을 직접 시뮬레이션해도 충분히 해결할 수 있습니다.

from collections import Counter

def solution(points, routes):
    answer = 0
    
    robot_path = []
    for route in routes:
        nr, nc = points[route[0]-1]
        path = [(nr, nc)]
        
        for point_num in route[1:]:
            r, c = points[point_num-1]
            while nr != r:
                if nr < r:
                    nr += 1
                else:
                    nr -= 1
                path.append((nr, nc))
            while nc != c:
                if nc < c:
                    nc += 1
                else:
                    nc -= 1
                path.append((nr, nc))
        robot_path.append(path)  
    
    max_time = max(len(path) for path in robot_path)
    
    for time in range(max_time):
        position = []
        
        for path in robot_path:
            if time < len(path):
                position.append(path[time])
        
        counter = Counter(position)
        
        for point, count in counter.items():
            if count >= 2:
                answer += 1
    
    return answer
728x90
반응형
728x90
반응형

문제 설명

순서대로 n개의 퍼즐을 제한 시간 안에 모두 해결해야 합니다.

각 퍼즐에는 다음 정보가 존재합니다.

  • diff : 퍼즐의 난이도
  • time_cur : 현재 퍼즐을 푸는 데 필요한 시간
  • time_prev : 이전 퍼즐을 푸는 데 필요한 시간
  • level : 현재 숙련도

퍼즐을 푸는 방식은 숙련도에 따라 달라집니다.

diff ≤ level인 경우

현재 숙련도가 퍼즐의 난이도 이상이라면 퍼즐을 틀리지 않고 바로 해결할 수 있습니다.

따라서 필요한 시간은

time_cur

입니다.

diff > level인 경우

숙련도가 퍼즐의 난이도보다 낮다면

diff - level

번 퍼즐을 틀리게 됩니다.

한 번 틀릴 때마다

  • 현재 퍼즐을 푸는 시간 time_cur
  • 이전 퍼즐을 다시 푸는 시간 time_prev

가 필요합니다.

따라서 한 번 틀릴 때마다

time_cur + time_prev

만큼 시간이 필요합니다.

그리고 모든 실패가 끝난 뒤 현재 퍼즐을 한 번 더 풀어야 하므로 최종적으로 필요한 시간은

(diff - level) × (time_cur + time_prev) + time_cur

입니다.

모든 퍼즐을 해결하는 데 걸리는 시간이 limit 이하가 되도록 하는 **최소 숙련도 level**을 구해야 합니다.


제한사항

  • 1 ≤ n ≤ 300,000
  • diffs[i]는 i번째 퍼즐의 난이도입니다.
  • times[i]는 i번째 퍼즐의 소요 시간입니다.
  • diffs[0] = 1
  • 1 ≤ diffs[i] ≤ 100,000
  • 1 ≤ times[i] ≤ 10,000
  • 1 ≤ limit ≤ 10^15
  • 제한 시간 내에 모든 퍼즐을 해결할 수 있는 경우만 입력으로 주어집니다.

입출력 예

diffstimeslimitresult

[1, 5, 3] [2, 4, 7] 30 3
[1, 4, 4, 2] [6, 3, 8, 2] 59 2
[1, 328, 467, 209, 54] [2, 7, 1, 4, 3] 1723 294
[1, 99999, 100000, 99995] [9999, 9001, 9999, 9001] 3456789012 39354

문제 풀이

이 문제에서 중요한 점은 숙련도가 높아질수록 모든 퍼즐을 푸는 데 필요한 시간이 줄어든다는 것입니다.

따라서 특정 숙련도에서 제한 시간 안에 퍼즐을 모두 해결할 수 있는지를 확인할 수 있다면,
최소 숙련도를 이분 탐색으로 찾을 수 있습니다.


1. 특정 숙련도에서 걸리는 시간 계산하기

먼저 숙련도 level이 정해져 있다고 생각해보겠습니다.

각 퍼즐의 난이도 diff와 level을 비교하면 해당 퍼즐에 필요한 시간을 계산할 수 있습니다.

숙련도가 충분한 경우

diff ≤ level이라면 퍼즐을 틀리지 않으므로

time_cur

만큼의 시간이 필요합니다.


숙련도가 부족한 경우

diff > level이라면

diff - level

번 틀리게 됩니다.

한 번 틀릴 때마다 현재 퍼즐과 이전 퍼즐을 다시 풀어야 하므로

time_cur + time_prev

만큼 시간이 필요합니다.

따라서 실패 과정에서 필요한 시간은

(diff - level) × (time_cur + time_prev)

이고,

마지막으로 현재 퍼즐을 성공하는 데 time_cur이 한 번 더 필요합니다.

따라서 현재 퍼즐에 필요한 전체 시간은

(diff - level) × (time_cur + time_prev) + time_cur

입니다.


2. 첫 번째 퍼즐 처리

첫 번째 퍼즐의 난이도는 항상 1이고 숙련도 역시 1 이상이므로 첫 번째 퍼즐은 항상 한 번에 풀 수 있습니다.

따라서 첫 번째 퍼즐에서는

times[0]

만큼의 시간만 사용합니다.

이후 퍼즐부터 이전 퍼즐의 시간이 필요하기 때문에

time_prev = times[i - 1]

을 사용하면 됩니다.


3. 숙련도가 높을수록 필요한 시간은 감소한다

이 문제에서 이분 탐색을 사용할 수 있는 이유는 숙련도와 소요 시간의 관계가 일정하기 때문입니다.

예를 들어 난이도가 5인 퍼즐이 있다고 해보겠습니다.

숙련도가 증가하면 실패 횟수는 다음과 같이 변합니다.

level실패 횟수

1 4
2 3
3 2
4 1
5 이상 0

즉, 숙련도가 증가할수록 실패 횟수는 줄어듭니다.

따라서 전체 소요 시간 역시 항상 같거나 감소합니다.

즉,

  • 어떤 숙련도 level에서 제한 시간 안에 해결할 수 있다면
  • 그보다 높은 모든 숙련도에서도 해결할 수 있습니다.

반대로,

  • 어떤 숙련도에서 제한 시간을 초과했다면
  • 그보다 낮은 숙련도에서도 해결할 수 없습니다.

이를 정리하면 다음과 같은 형태가 됩니다.

실패 실패 실패 ... 성공 성공 성공

우리가 찾으려는 것은 여기서 처음 성공하는 숙련도입니다.

이런 형태의 문제는 이분 탐색으로 해결할 수 있습니다.


4. 이분 탐색 범위 설정

숙련도는 양의 정수이므로 최소값은

1

입니다.

숙련도가 모든 퍼즐의 최대 난이도 이상이라면 어떤 퍼즐에서도 틀리지 않습니다.

따라서 필요한 숙련도의 최댓값은

max(diffs)

까지만 확인하면 충분합니다.

이분 탐색의 범위는

1 ~ max(diffs)

가 됩니다.


5. 중간 숙련도로 제한 시간을 만족하는지 확인

현재 탐색 범위의 중간값을

mid

라고 하겠습니다.

mid를 현재 숙련도라고 가정하고 모든 퍼즐을 순회하면서 전체 소요 시간을 계산합니다.

전체 시간이 limit 이하라면 현재 숙련도로 모든 퍼즐을 해결할 수 있다는 의미입니다.

하지만 문제에서는 가능한 숙련도가 아니라 최소 숙련도를 요구하고 있습니다.

따라서 더 작은 숙련도에서도 해결할 수 있는지 확인하기 위해 왼쪽 범위를 탐색합니다.

반대로 전체 시간이 limit보다 크다면 현재 숙련도가 부족하다는 뜻이므로 숙련도를 높여야 합니다.

따라서 오른쪽 범위를 탐색합니다.

이를 반복하면 제한 시간을 만족하는 최소 숙련도를 찾을 수 있습니다.


6. 제한 시간을 초과하면 즉시 계산 종료

퍼즐의 개수는 최대 300,000개입니다.

특정 숙련도에서 전체 시간을 계산하는 도중 이미

total_time > limit

이 되었다면 남은 퍼즐을 확인할 필요가 없습니다.

이후에는 시간이 감소하지 않기 때문에 현재 숙련도로는 제한 시간을 만족할 수 없다는 사실이 이미 결정되었기 때문입니다.

따라서 이 순간 바로 계산을 종료하면 불필요한 연산을 줄일 수 있습니다.


예제 1

diffs = [1, 5, 3]

times = [2, 4, 7]

limit = 30

이라고 해보겠습니다.

숙련도를 3이라고 하면 다음과 같습니다.

첫 번째 퍼즐

난이도는 1이고 숙련도는 3이므로 바로 해결할 수 있습니다.

소요 시간은

2

입니다.


두 번째 퍼즐

난이도는 5, 숙련도는 3입니다.

따라서

5 - 3 = 2

번 틀립니다.

현재 퍼즐의 소요 시간은 4, 이전 퍼즐의 소요 시간은 2이므로 한 번 틀릴 때 필요한 시간은

4 + 2 = 6

입니다.

따라서 전체 시간은

6 × 2 + 4 = 16

입니다.


세 번째 퍼즐

난이도가 3이고 숙련도 역시 3이므로 틀리지 않고 해결합니다.

필요한 시간은

7

입니다.


전체 시간은

2 + 16 + 7 = 25

입니다.

제한 시간인 30 이하이므로 숙련도 3이면 모든 퍼즐을 해결할 수 있습니다.

반면 숙련도 2에서는 제한 시간을 초과하므로 최소 숙련도는

3

이 됩니다.


핵심 정리

이 문제는 각 숙련도를 1부터 하나씩 증가시키며 확인하면 너무 많은 연산이 필요합니다.

대신 다음 두 가지 성질을 이용합니다.

  1. 특정 숙련도가 주어지면 모든 퍼즐의 전체 소요 시간을 계산할 수 있습니다.
  2. 숙련도가 증가할수록 전체 소요 시간은 절대 증가하지 않습니다.

따라서

제한 시간을 만족하는 최소 숙련도

를 찾는 문제로 바꿔 생각할 수 있고, 이를 이분 탐색으로 해결할 수 있습니다.


시간 복잡도

퍼즐의 개수를 N, 최대 난이도를 D라고 하겠습니다.

특정 숙련도가 가능한지 확인하려면 모든 퍼즐을 한 번 확인해야 하므로

O(N)

의 시간이 필요합니다.

숙련도 범위 1 ~ D에서 이분 탐색을 진행하므로

O(log D)

번 확인합니다.

따라서 전체 시간 복잡도는

O(N log D)

입니다.

N은 최대 300,000, D는 최대 100,000이므로 충분히 빠르게 해결할 수 있습니다.

def solution(diffs, times, limit):
    left, right = 1, max(diffs)
    answer = right
    
    while left <= right:
        mid = (left + right) // 2
        
        # mid 숙련도로 퍼즐들을 푸는 데 걸리는 총 시간 계산
        total_time = 0
        prev_time = 0
        for diff, time in zip(diffs, times):
            if diff > mid:
                total_time += (diff - mid) * (prev_time + time) + time
            else:
                total_time += time
            prev_time = time
            
        # 시간 내에 해결 가능한 경우: 더 낮은 숙련도 탐색
        if total_time <= limit:
            answer = mid
            right = mid - 1
        # 제한 시간을 초과한 경우: 더 높은 숙련도 필요
        else:
            left = mid + 1
            
    return answer
728x90
반응형
728x90
반응형

문제 설명

게임 캐릭터는 붕대 감기 기술을 사용해 체력을 회복할 수 있습니다.

붕대 감기는 t초 동안 지속되며, 붕대를 감는 동안 매초 x만큼의 체력을 회복합니다.
또한 t초 동안 한 번도 공격받지 않고 연속으로 붕대를 감는 데 성공하면 y만큼의 체력을 추가로 회복합니다.

단, 체력은 최대 체력을 초과할 수 없습니다.

몬스터의 공격을 받는 순간에는 체력을 회복할 수 없으며, 진행 중이던 붕대 감기도 취소됩니다.
공격 이후에는 다시 붕대 감기를 시작하고, 연속 성공 시간은 0부터 다시 계산합니다.

몬스터에게 공격받아 현재 체력이 0 이하가 되면 캐릭터가 죽게 됩니다.

붕대 감기의 정보와 캐릭터의 최대 체력, 몬스터의 공격 시간이 주어졌을 때 모든 공격이 끝난 직후 남아 있는 체력을 구해야 합니다.

캐릭터가 중간에 죽는 경우 -1을 반환합니다.

제한 사항

  • bandage = [t, x, y]
    • t : 붕대 감기 시전 시간
    • x : 1초당 회복량
    • y : 연속 시전 성공 시 추가 회복량
  • 1 ≤ t ≤ 50
  • 1 ≤ x ≤ 100
  • 1 ≤ y ≤ 100
  • 1 ≤ health ≤ 1,000
  • 1 ≤ attacks의 길이 ≤ 100
  • attacks[i] = [공격 시간, 피해량]
  • 공격 시간은 오름차순으로 주어지며 서로 중복되지 않습니다.

입출력 예

bandagehealthattacksresult

[5, 1, 5] 30 [[2, 10], [9, 15], [10, 5], [11, 5]] 5
[3, 2, 7] 20 [[1, 15], [5, 16], [8, 6]] -1
[4, 2, 7] 20 [[1, 15], [5, 16], [8, 6]] -1
[1, 1, 1] 5 [[1, 2], [3, 2]] 3

문제 풀이

이 문제에서 중요한 부분은 모든 시간을 1초씩 확인할 필요가 없다는 것입니다.

몬스터의 공격이 발생하는 시간은 이미 정해져 있으므로,
각 공격과 다음 공격 사이에 존재하는 회복 가능한 시간만 계산하면 됩니다.

1. 공격 사이의 회복 시간 계산

이전 공격 시간이 prev, 현재 공격 시간이 current라고 한다면 두 공격 사이에 실제로 붕대를 감을 수 있는 시간은

current - prev - 1

초입니다.

예를 들어 이전 공격이 2초, 다음 공격이 9초라면

3, 4, 5, 6, 7, 8초

동안 붕대를 감을 수 있으므로 총 6초 동안 회복할 수 있습니다.

현재 공격이 발생하는 9초에는 공격을 받기 때문에 회복할 수 없다는 점에 주의해야 합니다.


2. 기본 회복량 계산

회복 가능한 시간이 healTime초라면 매초 x만큼 회복하므로 기본 회복량은

healTime × x

가 됩니다.

예를 들어 6초 동안 붕대를 감을 수 있고 초당 회복량이 1이라면

6 × 1 = 6

만큼 체력을 회복합니다.


3. 연속 성공 추가 회복 계산

붕대 감기를 t초 연속으로 성공하면 추가로 y만큼 회복할 수 있습니다.

따라서 healTime초 동안 받을 수 있는 추가 회복 횟수는

healTime / t의 몫

으로 구할 수 있습니다.

즉, 추가 회복량은

(healTime // t) × y

가 됩니다.

예를 들어 시전 시간이 5초이고 공격 사이에 11초의 시간이 있다면

  • 5초 연속 성공 → 추가 회복 1회
  • 다시 5초 연속 성공 → 추가 회복 1회
  • 남은 1초 → 추가 회복 없음

이므로 총 2번의 추가 회복을 받을 수 있습니다.


4. 공격 사이의 전체 회복량

따라서 공격 사이에서 회복할 수 있는 전체 체력은

healTime × x + (healTime // t) × y

로 계산할 수 있습니다.

회복한 이후에는 현재 체력이 최대 체력을 넘어갈 수 없으므로

현재 체력과 최대 체력 중 작은 값

으로 체력을 제한해야 합니다.


5. 공격 처리

회복 처리가 끝났다면 현재 공격의 피해량만큼 체력을 감소시킵니다.

이때 체력이 0 이하가 된다면 캐릭터가 죽은 것이므로 바로 -1을 반환합니다.

살아 있다면 현재 공격 시간을 이전 공격 시간으로 저장하고 다음 공격을 처리합니다.

공격을 받는 순간 붕대 감기의 연속 성공 기록이 초기화되기 때문에, 다음 공격 구간에서는 다시 처음부터 연속 시간을 계산하면 됩니다.


전체 흐름

각 공격에 대해 다음 과정을 반복하면 됩니다.

  1. 이전 공격과 현재 공격 사이의 회복 가능한 시간을 구합니다.
  2. 해당 시간 동안의 기본 회복량을 계산합니다.
  3. t초 연속 성공 횟수에 따른 추가 회복량을 계산합니다.
  4. 최대 체력을 넘지 않도록 현재 체력을 조정합니다.
  5. 현재 공격의 피해량을 감소시킵니다.
  6. 체력이 0 이하라면 -1을 반환합니다.
  7. 모든 공격을 버텼다면 마지막 공격 직후의 체력을 반환합니다.

예제 1

bandage = [5, 1, 5]

health = 30

attacks = [[2, 10], [9, 15], [10, 5], [11, 5]]

이라고 해보겠습니다.

처음 체력은 30입니다.

2초 공격

공격 이전에 회복 가능한 시간은 1초입니다.

하지만 이미 최대 체력이므로 체력은 그대로 30입니다.

10의 피해를 받아

30 → 20

이 됩니다.

9초 공격

2초 공격 이후 9초 공격 이전까지

3 ~ 8초

총 6초 동안 회복할 수 있습니다.

기본 회복량은

6 × 1 = 6

이고,

5초 연속 성공을 한 번 달성하므로 추가로 5를 회복합니다.

따라서

20 + 6 + 5 = 31

이지만 최대 체력이 30이므로 현재 체력은 30이 됩니다.

이후 15의 피해를 받아

30 → 15

가 됩니다.

10초 공격

9초와 10초 사이에는 회복할 수 있는 시간이 없습니다.

따라서 바로 5의 피해를 받아

15 → 10

이 됩니다.

11초 공격

마찬가지로 회복할 시간이 없으므로 바로 5의 피해를 받습니다.

10 → 5

모든 공격이 끝난 뒤 체력이 5 남았으므로 정답은 5입니다.


시간 복잡도

공격의 개수를 N이라고 했을 때 각 공격을 한 번씩만 확인합니다.

따라서 시간 복잡도는

O(N)

입니다.

공격 시간의 최대값만큼 매초 시뮬레이션하는 방법도 가능하지만, 공격 사이의 시간을 한 번에 계산하면 불필요한 반복 없이 문제를 해결할 수 있습니다.

def solution(bandage, health, attacks):
    cast_time, heal_per_sec, bonus_heal = bandage
    hp = health
    heal_count = 0
    attack_idx = 0
    
    for t in range(1, attacks[-1][0] + 1):
        # 1. 몬스터 공격 피격
        if t == attacks[attack_idx][0]:
            hp -= attacks[attack_idx][1]
            if hp <= 0:
                return -1
            heal_count = 0
            attack_idx += 1
            continue
            
        # 2. 붕대 감기 (회복)
        heal_count += 1
        hp += heal_per_sec
        
        # 3. 연속 성공 보너스 회복
        if heal_count == cast_time:
            hp += bonus_heal
            heal_count = 0
            
        # 최대 체력 초과 방지
        hp = min(health, hp)
        
    return hp
728x90
반응형

+ Recent posts