프로그래밍 스터디 #2 (Baekjoon 2577, 2562, 5622)
백준 2577
a = int(input())
b = int(input()) #abc 입력
c = int(input())
result = list(str(a*b*c)) # int형의 abc를 곱한후 문자열로 바꾸어 리스트로 집어넣음
for i in range(10): # 0부터 9까지 몇번 쓰엿는지 알기 위한 for 문
count = result.count(str(i)) # i 값에 차례로 0부터 9까지 들어가면서 카운트
print(count) # 출력
백준2562
#include <stdio.h>
int main() {
int i, num[8], max=0, ord; // 최댓값, for문에 사용할 i변수, 입력받을 숫자 변수, 순서 변수 선언
for (i=0;i<9;i++) { // for 문 num[i]에 입력
scanf("%d",&num[i]);
}
for (i=1;i<=9;i++) {
if (num[i-1]>max) { // 최댓값과 입력받은 변수 비교, 변수는 자연수이기에 max = 0으로 하면
max = num[i-1]; // 처음받는 값도 0보다는 크기때문에 첫 변수가 max에 들어가고 순차 비교
ord = i; // 순서는 for문 돌아가면서 index 값으로 순서값 넣기
}
}
printf("%d\n%d",max,ord); // 출력
}
백준 5622 (내 코드, 충격적인 한줄 코딩;;;)
num = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ'] # 다이얼 리스트로 정리
dial = input() # 다이얼 입력
sec = 0 # 시간 변수
for i in range(len(dial)): # for 문 입력받은 길이만큼 루프
for j in num: # num list의 인덱스만큼 루프
if dial[i] in j: #입력받은 문자가 첫번째의 경우'abc'중 하나에 속한다면
sec = sec + num.index(j) + 3 # 인덱스 번호+3을 하여 시간 계산
print(sec) # 출력
print(sum((ord(i) - 56 - int(ord(i)>82) - int(ord(i)>89)) // 3 for i in input()))
# ascii 코드로 알파벳 치환
# 3으로 나눈후 최솟값이 3이 되도록 56을 빼줌
# 이후 다이얼이 4자리인것은 1씩더 빼주어 숫자를 맞춰줌
# ( 여기서 왜 1이 빠지는지 한참 헤맴 1이 빠지는 이유는 참 값은 1이기 때문)
# 그후 sum 함수로 for문을 돌려가며 값들을 더해줌
# 출력
# 출처: https://webolutions.tistory.com/157 [Do IT Yourself]
한줄 코딩 미춌다; 어띃게 이런 생각을 하지;