dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
    prize = 1000 + same_number * 100
    print(prize)

else:
    print(max(dice1, dice2, dice3)*100)
같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.

 

🤔 문제 풀이

  • dice1, dice2, dice3 = map(int,input().split())
    • 주사위 세 개를 받아낼 겁니다
  • if dice1==dice2==dice3:
        print(10000 +dice1 *1000)
    • 주사위 세 개가 모두 같은 숫자를 띄울 때를 시작으로 조건문을 시작했습니다
  • elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
        same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
        prize = 1000 + same_number * 100
        print(prize)
    • 주사위 두 개가 같을 때의 조건문입니다
    • dice1&dice2 , dice1&dice3 , dice2&dice3이 주사위 두 개가 같을 때죠
    • same_number = dice1 if dice1 == dice2 or dice1 == dice3
      • dice1이 다른 dice2,3과 같을 때 dice1을 주어로 내세우겠다는 거예요
    • else dice2
      • 그 외에는 dice2를 주어로 하겠다는 거죠
  • else:
        print(max(dice1, dice2, dice3)*100)
    • 나머지는 주사위 세 개 모두 다를 때 max() 함수를 써서 최댓값으로 곱해주었습니다.

#1트 
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]

prize_same3 = 10000 +dice *1000     # 뭐가 같은 숫자인지 어케 판별하냐 이거
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100

if dice1==dice2==dice3:     # 주사위 모두 같은 숫자일 때
    print(prize_same3)
elif :
     print(prize_same2)

 

첫 번째로 시도한 코드들인데, 저 많이 성장한 게 보이지 않나요?

문제 보자마자 우르르 쓴 게 신기했어요

원래 하얀 백지에 선뜻 손 올리기가 어렵잖아요, 하지만 저는 얼마든지 더럽히는 거엔 서슴없거든요

근데 뭘 알아야 더럽히죠 ㅋㅋㅋ,,

이제는 어느 정도 마음껏 더럽힐 수 있어요! 

 

하지만 elif로 들어가는 순간 막혔어요 ㅋㅎ

 

#2트 (TypeError)
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]

prize_same3 = 10000 +dice *1000
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100

if dice1==dice2==dice3:
    print(prize_same3)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    print(prize_same2)
else:
    print(nothing_same_prize)

 

2트에서는 TypeError로 틀렸어요

그래서 리스트로 하지 말고, 해봐야겠다 싶더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    print(prize_same2)

그리고!

elif문을 노가다로 써보았어요 어떻게든 문제는 풀고 싶었거든요!

 

#3트 "틀렸습니다"
dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:    # 여기서 같은 숫자 어케 판별함?
    print(1000 +dice1 *100)
else:
    print(max(dice1, dice2, dice3)*100)

 

자! 리스트는 없애주고 하나하나 적어주었어요

근데 그냥 "틀렸습니다"라고 하네요? ^^

 

그래서 코드랑 눈싸움했어요

elif문이 문제인 게 뻔히 보이더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:    # 여기서 같은 숫자 어케 판별함?
    print(1000 +dice1 *100)

 

저 중에서 어떤 게 같은 숫자 2개이고, 뭐를 print()해줘야 할지를 명확히 해줘야 하잖아요

 

#4트
dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
    
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
    prize = 1000 + same_number * 100
    print(prize)

else:
    print(max(dice1, dice2, dice3)*100)

 

🤔 문제 풀이

  • elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    • same_number = dice1 if dice1 == dice2 or dice1 == dice3
      • 여기까지가 dice1에 대한 조건문이에요 dice1이 dice2와 3과 같으면 dice1로 할 거란 거예요!
    • else dice2
      • 그 외에는 dice2로 끌고 올게요!
    • prize = 1000 + same_number * 100
      • 주사위 2개가 같을 때의 식별자를 same_number로 했기 때문에 주사위 자리엔 식별자를 넣었어요!

이번에도 도움을 여기저기 많이 받은 문제였어요

캬~

도와주셔서 감사하고, 더 배워갈 수 있도록 해주셔서 감사해요

파이팅~!

h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60

if h >= 24:
    h -= 24

print(h,m)

 

🤔 문제 풀이

  • h, m =map(int,input().split())
    • 백준에서 입력해주는 값을 int로 변환하고, 공백을 기준으로 매칭시켜줄 겁니다.
  • cooktime = int(input())
    • 조리 시간을 int형으로 받아줄게요
  • h += cooktime //60
    • 시간은 조리 시간에다가 60을 써서 몫을 구하고, 몫이 있을 시, 더해줄게요
  • m += cooktime %60
    • 분은 조리 시간에다가 60을 나눈 나머지를 더해줄게요
    • 예) 61%60은 1이 나머지니까 m에 더해줄게요
  • if m >= 60:
        h += 1
        m -= 60
    • 분이 60이거나 60을 넘어서면 h에 1시간을 더해줄게요
    • 그러고 m에는 60을 빼준 값을 반환할게요
  • if h >= 24:
        h -= 24
    • h가 24보다 크거나 같을 때는 h에 -24를 해줄게요
    • 0시가 필요하니까요

실패 흔적들 

#1트 - TypeError
h, m =int(input().split())
cooktime = int(input())

if h >= 24:
     h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • 제가 생각하는 조건들만 우르르 적어보았어요
  • 제가 문제 푸는 스타일이 문제를 읽으면서 떠오르는 코드들을 나열하거든요 ㅎㅎ;
  • h, m =int(input().split())
    • map 함수를 하지 않았더니 TypeError가 나더라구요
함수 설명 예시
map(function, iterable)
  • function: 각 요소에 적용할 함수.
  • iterable: 함수가 적용될 리스트, 튜플, 집합 등.
# 두 리스트에서 같은 위치의 값들을 더하는 함수
def add(x, y):
    return x + y

list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 두 리스트에서 같은 위치의 값을 더하기
result = map(add, list1, list2)

# 결과를 리스트로 변환하여 출력
print(list(result))  # [5, 7, 9]

 

  • 그래서 map 함수를 다시 보고, 2트로 넘어갔습니다.
    • 왜 다시 보았냐면, "map 안 써도 되지 않나?" 라고 생각했거든요

 

#2트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60  # cooktime에다가 60을 나눴을 때 몫이 나온다면 그 몫을 더해주기
m += cooktime %60   # cooktime에다가 60을 나눴을 때 나머지를 다온다면 더해주기

if h >= 24:
   h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • h, m =map(int,input().split())
    • h, m을 각각 int형으로 변환해주고, input 받을 겁니다!
  • h += cooktime //60
    • 이걸 왜 썼냐면요, cooktime이 60분으로 나누어주었을 때 몫이 생기면 시간에 +1을 해주기 위해서예요
  • m += cooktime %60
    • 반면에 분을 구할 때는 나머지(%)로 해주었습니다
    • 예를 들어 61%60을 하면 나머지 1이 발생하죠? 그게 1분으로 남게끔요!

하지만 정답으로는 틀렸다고 뜨더라구요 🤔

뭐가 문제일지 멍- 때리면서 고민했어요 흐음

 

#3트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
elif m < 60:
    m +=cooktime
    
if h >= 24: # h는 따로 조건문을 줘야 하나? 라고 생각했음
    h -= 24

print(h,m)

 

그래서 도달한 생각이 변수 h와 m를 각각 조건을 줘야 하나..? 했어요

하지만 틀렸죠 ( ͡° ͜ʖ ͡°) 

근데 이렇게 따로 조건을 줘야할 거 같아서 그대로 유지했답니다

 

#4트 "정답"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
    
# elif m < 60:  # 이미 위에서 m에 대해 정의 내렸기 때문에 삭제해봄
#     m +=cooktime

if h >= 24:
    h -= 24

print(h,m)

 

대체 뭐가 문제인지,, 🤦🏻‍♀️

제가 만든 코드와 눈싸움을 해봤어요

생각해보니까 위에서 m에 대해 할당을 해놓고 밑에서 elif로 또 조건을 줬더라구요 그래서 삭제해보았더니

정답!!!! 드디어 정답!!!


저번에 알람 시계 문제도 그렇고

시간 계산하는 거를 정말 못하는 거 같아요

앞으로도 시간 관련 문제를 좀 더 접해봤으면 좋겠어요

def solution(n):
    answer = 0

    for i in range(1,n+1):
        if n % i ==0:
            answer +=1
    return answer

 

🤔 문제 풀이

  • for i in range(1,n+1):
    • 1부터 n+1한 범위까지 for문 돌려줄게요
    • range()에서 끝 숫자는 포함하지 않으니까 +1를 해줬어요
  • if n % i ==0:
    • if문입니다 주어진 자연수(n)를 1~n까지에 있는 값들로 나눴을 때 나머지가 0이 된다면 그건 n의 약수겠죠
  • answer +=1
    • 앞전에 만들어주었던 answer에 if 조건문에 해당되는 애들을 +1한 값을 얻어낼 겁니다
  •  return answer
    • return한 값이 곧, 이 문제의 답이 되는 것이죠

하,, 또 너야

또 너야 range()???

이걸 왜 이리 활용을 못할까요 하아ㅏ,,

문제 더 풀어봐야겠어요

제발 친해지자 range()야

 

def solution(emergency):
    answer1 = []
    answer2 = []
    answer2 = sorted(emergency, reverse=True)
    
    for i in emergency:
        answer1.append((answer2.index(i)+1))

    return answer1

 

🤔 문제 풀이

  • answer1 = []
    • emergency의 값을 넣어줄 비어있는 리스트입니다
  • answer2 = sorted(emergency, reverse=True) :
    • answer1에 주어진 emergency 숫자 리스트를 정렬해주고, 내림차순으로 정리한 게 answer2가 될 거예요
  • for i in emergency:
    • 이제 emergency에 있는 숫자들을 순차적으로 순회할 겁니다
  • answer1.append((answer2.index(i)))
    • for문을 어떻게 돌릴 거냐면요. answer2.index(i)를 answer1에 추가해줄 겁니다
    • answer2.index(i)는 emergency에 있는 숫자의 위치를 answer2에서 찾는 코드예요
      • 그래야 가장 큰 값 순서대로 번호를 매길 수 있거든요
    • 그 찾은 위치를 answer1(리스트)에 추가해줄 겁니다
  • return answer1
    • 결괏값을 answer1에 넣었기 때문에 answer1을 출력해주면 문제 해결입니다.

list.index(element, start, end) element: 찾고자 하는 값
start (옵션): 검색을 시작할 인덱스 (기본값은 0)
end (옵션): 검색을 끝낼 인덱스 (기본값은 리스트 끝)

 

앞으로 자주 마주할 것처럼 생겼어요

불쾌하네요 🙄

잘 부탁드릴게요,, 잘 지내봅시다 ㅠㅠ

h,m = map(int, input().split())

if m>44:print(h,m-45)
elif m<45 and h==0:print(23,m+15)
else:print(h-1,m+15)

실패 흔적들 

#1트
h,m = map(int, input().split())

if m > 44:
    print(h,m-45)
elif m < 45:
    print((h-1),((m-45)+15))
#h가 0일 때 어떻게 해야 할지 모르겠음

 

분에만 집착했던 1트,,

 

#2트
h,m = map(int, input().split())

if h==0 and m>44:print(h, m-45)
elif h==0 and m<45:print(,(m+60)-45)  #h를 어떻게 적어야 할지 모르겠음
elif h!=0 and m<46:print()
#아닌 경우를 생각해봐야겠음 (else:)

 

그 후 h를 어떻게 해야 하는지 뒤늦게 깨닫고 고민하기 시작

 

#3트 (백준 돌렸더니 틀렸다캄)
h,m = map(int, input().split())

if m>45:print(h,m+15)               #m이 45보다 클 때
elif m<45 and h==0:print(23,m+15)   #h가 0이고, m이 45보다 작을 때
else:print(h-1,m+15)                #h가 0이 아니고, m이 45보다 작을 때

 

VSCode로 돌렸을 때는 passed로 떠서 드디어 1시간 50분만에 벗어난 거라 생각하고 엄청 좋아했는데

백준에서 돌렸더니 틀렸다하더라구요

열받아서, 순간적으로 빈혈끼 돌았습니다 😤

 

#4트
h,m = map(int, input().split())

if m>45:print(h,m+15)
elif m<45 and h<1:print(23,m+15)       #h<1으로 해봤는데 틀림
else:print(h-1,m+15)

 

이때까지도 m>45 조건의 존재를 모르고 있었어요 ㅋㅋㅋㅋㅋㅋ,,

간과하고 있었더라구요

튜터님께 피드백으로 계속 힌트 얻고, 언니랑 논의하지 않았으면 못 벗어났을 거예요

감사합니다 증말,,, ㅠㅠㅠㅠㅠ ❤️

 

#5트
h,m = map(int, input().split())

if m>44:print(h,m-45)       #m이 45보다 큰 값이니까 -45하면 됨!!!
elif m<45 and h==0:print(23,m+15)
else:print(h-1,m+15)

 

5트가 되어서야 m>44일 때는 그냥 -45를 해버리면 된다는 걸 깨달았어요 😮‍💨

그래도 풀었으니 된 거죠!! 하핫!! 😆

 

x = int(input())
y = int(input())

if x>0 and y>0:print("1")
elif x<0 and y>0:print("2")
elif x<0 and y<0:print("3")
elif x>0 and y<0:print("4")

 

1트만에 풀 줄 몰랐어서 글 쓸 준비하고 있었는데,

1트만에 성공해서 얼떨떨했던 문제였다 👀,,

그리고

오늘 푼 문제 중에서 if문에다가 다른 사람 풀이 중에 콜론 옆에 print() 바로 붙이는 거 보고

그거 따라해봄!! 😎

year= int(input())

if (year%4==0) and (year%100!=0) or year%400==0:
    print("1")
else:
    print("0")

실패 흔적들 

#1트
year= int(input())

if year // 4 ==0:     # 1 나오는 조건이 틀렸음
    if year // 100 !=0:
        print("1")
elif year // 100 ==0:
    if year // 400 ==0:
        print("1")
else:
    print("0")        # 맞았음

 

이제서야 보이는,, 연산자 선택 실수,, 😭

 

#2트
year= int(input())

if year // 4 or 400==0:
    if year // 100 !=0:
        print("1")      # 여기까진 맞았음
else:
    print("0")          # 틀렸음

 

2트만에 수식 짧아진 게 너무 웃겨요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

#3트
year= int(input())

if year // 4 or 400==0 and year //100!=0:
    print("1")
else:
    print("0")      # 왜 틀림..?

 

굳건하게 else:로 풀겠다는 저의 의지가 보이네요 ㅋㅋㅋㅋㅋㅋㅋ

이때까지도 연산자 틀린 걸 못 깨달았어요

 

#4트
year= int(input())

if (year%4==0) and (year%100!=0) or year%400==0:   #아,, 몫이 아니라 나머지를 했어야지,, 하아ㅏ
    print("1")
else:
    print("0")

 

드디어 깨달은 연산자 실수 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

그래도 찾은 게 어디에요!! ㅋㅋㅋㅋㅋㅋ

그러면서 점점 코드가 짧아졌어요 히히 😜

 

 

score = int(input())

if score >=90:
    print("A")
elif 80 <= score < 90:
    print("B")
elif 70 <= score < 80:
    print("C")
elif 60 <= score < 70:
    print("D")
else:
    print("F")

 

코드를 쓰면서도 스스로 지쳐가지고 더 쉽게 풀 수 있는 방법이 없는지 생각하게 된 문제였다.


다른 사람 풀이 

print("FFFFFFDCBAA"[int(input())//10])

 

와,, 이건 대체 뭐지?

 

a=int(input())
if a < 60:
    print('F')
elif a < 70:
    print('D')
elif a < 80:
    print('C')
elif a < 90:
    print('B')
else:
    print('A')

 

아,, 맞네

성적 부여 순서를 바꿔서 해도 되고,

범위값을 이렇게 표현해도 됐던 거네,, 😞

 

a=int(input())
if a>=90: print('A')
elif a>=80: print('B')
elif a>=70: print('C')
elif a>=60: print('D')
else: print('F')

 

아! 😮

이렇게 옆에다가 바로 print() 해도 되는구나!

A = int(input())
B = input()

print(A * int(B[2]))
print(A * int(B[1]))
print(A * int(B[0]))
print(A * int(B))

 


실패 흔적들 

## 사칙연산_곱셈
#1트
num1 = input()
num2 = input()

print(int(num1[3]*num2[3]))
print(int(num1[2]*num2[2]))
print(int(num1[1]*num2[1]))
print(int(num1[3]*num2[3]) + (num1[2])*(num2[2]) + (num1[1])*(num2[1]))
# 시간도 많이 들 뿐더러 코드를 치는 내가 너무 지침,,
## 사칙연산_곱셈
#2트
A = int(input())  # 얘는 숫자로 바꿔주고
B = input()       # 얘는 숫자의 자리수로 곱해줘야 해서 그대로 문자열로 받아야 하는 걸 깨달음

print(A * int(B[3]))        # 자리수 셀 때 0부터 시작하는 거 까먹지 마셈,, ㅈㅂㅈㅂ
print(A * int(B[2]))
print(A * int(B[1]))
print(A * int(B))

다른 사람 풀이 

a=int(input())
b=input()
for i in range(1,4):
    print(a*int(b[-i]))
print(a*int(b))

 

for문과 range() 함수를 쓰는 문제 좀 많이 풀어봐야겠다,,

아직은 이렇게 접근할 생각을 못 해내네

 

🧐 문제 풀이

  • range(1,4) : 1번재 자리 수부터 3번째 자리 수까지의 범위 표시
  • print(a*int(b[-i]) : 세 자리 자연수(a)에 다른 정수로 변환한 세 자리 자연수(b)를 역순으로 곱함([-i])
  • print(a*int(b)) : 최종 값 출력

A, B, C = map(int, input().split())
print((A+B)%C)
print(((A%C) + (B%C))%C)
print((A*B)%C)
print(((A%C) * (B%C))%C)

+ Recent posts