본문 바로가기
1-4. 코딩테스트(현대자동차 Softeer)/Softeer(Lv1)

[Softeer] Lv1: 위험한 효도(7368) 해설

by cogito21_cpp 2025. 1. 11.
반응형

문제

- 문제 링크: 위험한 효도

 

풀이

(C언어)

solution 1)

- 시간 복잡도: 

더보기
#include <stdio.h>


int main(void)
{
    int a, b, d;
    scanf("%d %d %d", &a, &b, &d);

    int time = 0;
    int move = 0;
    while (d > move) {
        time += a;
        move += a;
        if (move >= d) {
            time -= (move - d); 
            move = d;
            break;
        }
        time += b;
    }
    
    while (2*d > move && move >= d) {
        time += b;
        move += b;
        if (move >= 2*d) {
            time -= (move - 2*d); 
            move = 2*d;
            break;
        }
        time += a;
    }

    printf("%d", time); 

    return 0;
}

 

(C++)

solution 1)

- 시간 복잡도: 

더보기
#include<iostream>


using namespace std;

int main(int argc, char** argv)
{
    int a, b, d;
    cin >> a >> b >> d;

    int time = 0;
    int move = 0;
    while (d > move) {
        time += a;
        move += a;
        if (move >= d) {
            time -= (move - d); 
            move = d;
            break;
        }
        time += b;
    }
    
    while (2*d > move && move >= d) {
        time += b;
        move += b;
        if (move >= 2*d) {
            time -= (move - 2*d); 
            move = 2*d;
            break;
        }
        time += a;
    }

    cout << time << endl;
    
    return 0;
}

 

(Java)

solution 1)

- 시간 복잡도: 

더보기
import java.util.*

 

(Python)

solution 1)

- 시간 복잡도: 

더보기
import sys

a, b, d = map(int, input().split())

time = 0
move = 0
while (d > move):
    time += a
    move += a
    if (move >= d): 
        time -= (move - d)
        move = d
        break
    
    time += b;

    
while (2*d > move) and (move >= d):
    time += b
    move += b
    if (move >= 2*d):
        time -= (move - 2*d)
        move = 2*d
        break
    
    time += a


print(time)

 

(JavaScript)

solution 1)

- 시간 복잡도: 

더보기
import

 

반응형