본문 바로가기

전체 글75

백준 10818번 리스트 안 최소, 최대 값 출력 위와 같은 문제 시 , 2가지 방법으로 풀 수 있다. 하나는 최대/최소 기능을 만든 뒤 사용하는 방법이고 두번 째는 최대/최소 함수를 이용하여 문제를 푸는 방법이다 우선 전자의 방법부터 설명해보겠다. n = int(input()) number_list = list(map(int, input().split())) max_num = number_list[0] min_num = number_list[0] for num in number_list: if num > max_num: max_num = num if num < min_num: min_num = num print(min_num, max_num) 위 방법이 있지만, 사실 해당 방법은 코드의 효율이 굉장히 좋지 않을 뿐더러 속도도 오래 걸린다는 단점이 있다.. 2021. 1. 27.
마지막 수를 이어 나온 수대로 출력하는 사이클 프로그램 2자리 수의 마지막 수를 이어 처음 나온 수 대로 나올때까지 반복하는 사이클 프로그램을 만든다고 하자. 위와같은 알고리즘으로 사이클을 만든다고 했을 때, 코드는 어떻게 생성이 될까 ? 여기서 일단 얼라이어싱과 부호들의 이해 그리고 조건문이 익숙해야 쉽게 풀 수 있다. 자, 그럼 실제 코드를 살펴보자 temp = inp = int(input()) count = 0 while True: ten = temp // 10 one = temp % 10 res = ten + one count += 1 temp = int(str(temp%10) + str(res%10)) if (inp == temp): print(count) 위와 같이 표현할 수 있다. 2021. 1. 27.
for문과 while 문으로 A + B 출력 코드의 차이 for문도 반복문 while 반복문인데 , 이 두가지의 공통점은 반복문이라는 것. 반대로 차이점이 있다. 그것은 무엇일까? 바로, 한정적 반복과 무한반복이라는 것이다 가령, for문은 리스트 안에 정해진 범위 내외를 돈 뒤 출력을한다. 반면 whil은 정해놓지 않으면 무한적으로 반복하는 것이다. 그렇다면 코드로 한번 알아보자 위에 언급한 것처럼 a + b 계산식 기준으로 구해보자. n = int(input()) for i in range(1, n + 1): a, b = map(int, input().split()) print(a + b) i = 0 while True: i += 1 a, b = map(int, input().split()) print(a + b) 이렇게 위 while은 for와 달리 변수.. 2021. 1. 26.
변수를 이용하여 sys.stdin.readline, 매끄럽게 코딩 그리고 end = ""추가 기본적으로 for문을 이용하여 출력 시 좌측 얼라인을 갖고 있으며 오름차순인 것이 일반적이다. 이 구조를 변경하려면 추가 코드의 적용이 필요하다. 기본 셋팅값을 변경하기에 앞서 무엇을 할지 구체적으로 알아보자 * ** *** ... 위와 같은 별모양을 * ** *** **** ... 아래처럼 변경하는 것이다. 이 때 필요한 기술이 두 개 정도로 압축할 수 있는데 하나는 변수의 이용과 바로 end=""라는 줄바꿈 기능이다. import sys number = int(sys.stdin.readline()) for i in range(1, number+1, 1): # 1 2 3 4 5 for j in range(number-1, i-1, -1): # 4 3 2 1 0 참 세련된 표현이지 않나..? 기가 막힌다.. 2021. 1. 26.