본문 바로가기

전체 글86

파이썬 | for문과 print문 사용 시, 줄바꿈을 안하고 싶을때 for문을 사용해서 결과를 여러 개 출력해야하는 경우가 있다. 문제에서 요구하는 조건이 줄바구면서 하나하나 출력해주는 것이면 그냥 사용하면 되는데, 이번에 풀었던 문제가 "띄어쓰기"를 기준으로 출력하라는 것이였다. 역시 나는 기억이 나지 않았다. 원래 for문을 사용해서 print를 해 주면 아래처럼 나오게 된다. result = [1,2,3] for c in result: print(c) 1 2 3 Process finished with exit code 이걸 바꾸고 싶으면 아래와 같이 하면 된다. print(출력값 , end=' ') 처럼 따옴표 구분하고싶은 문자를 넣으면 된다. result = [1,2,3] for c in result: print(c,end= ' ') 1 2 3 Process fi.. 2020. 3. 15.
파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자. 역시 백준 알고리즘을 풀던 중, 여러 개의 숫자를 띄어쓰기 기준으로 한번에 입력받아서 저장 할 방법이 필요했다. 군대가기 전 배운걸 생각해 봤을때, 여러 개의 숫자를 저장할 자료형은 list를 쓰면 될것 같았다. 하지만, 띄어쓰기를 기준으로 한번에 입력받을 수 있는 방법이 기억이 나지 않아. 찾아보았다. 역시 답은 너무너무 간단했다. lst = list() lst = input().split() 그냥 리스트를 만들어 주고, input().split()을 사용하면 알아서 파이썬에서 입력받은 크기만큼 리스트를 만들어 줬다. 입력 받자마자 정수형으로 바꾸고싶으면 lst = map(int,input().split()) 이렇게 사용하면 된다. 2020. 3. 15.
파이썬 | 입력을 더 빠르게 받아보자. 백준 알고리즘에서 문제를 풀다가, 처음보는 내용이 있어서 기록으로 남겨본다. 아래 링크에서 나온 내용인데, https://www.acmicpc.net/problem/15552 요약하면 for문에서 숫자 두개를 받아서 바로바로 덧셈결과를 출력해주는 문제이다. 하지만 여기서 숫자를 입력받을때 input()을 쓰게되면 입력받는 시간이 초과되어버린다. 이 것을 해결하기 위해서는, 다른 방법을 사용해야 한다고 한다. import sys num = input() num = int(num) for i in range(num): a,b = map(int, sys.stdin.readline().split()) print(a + b) 이런식으로 sys.stdin.readline() 을 input대신에 사용 할 수 있다고 .. 2020. 3. 15.
파이썬 | 정수와 문자열 함께 출력하기 백준알고리즘을 단계별로 하나하나 풀어가던 도중, print()를 이용한 출력부분에서 막혀버렸다. 하나의 정수를 입력받아서 구구단으로 출력하는 문제였는데, 아무리 군대갔다왔다해도 이정도는 기억이 났다. 하지만, 제일 중요한 출력이 제대로 나오지 않았다. 내가 제일 처음 썼던 코드이다. num = input() num = int(num) for i in range(1,10): print(num + '*' + i + '=' + num*i) 이렇게 그냥 +를 해주면 알아서 출력을 해 줄줄 알았지만, TypeError: unsupported operand type(s) for +: 'int' and 'str' 위처럼 이런 오류가 나온다. 해석해보면 int와 str 사이에는 +를 지원하지 않는다는 소리이다. 분명히.. 2020. 3. 15.
파이썬 | input으로 입력 받을 때 캐스팅 해주기 1 2 3 4 5 6 7 a,b = input().split() print(a + b) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 10 20 1020 Process finished with exit code 0 cs 숫자 두 개를 입력받고 그 수를 더해서 출력을 하고 싶은데, input을 써서 받고 그냥 더해버리면 위의 코드처럼 10 + 20이 1020이 되어버린다 기적의 계산법 왜 그러냐면 input은 입력받고 string의 형태로 저장한다. 그래서 더하기를 시켜주면 문자열 + 문자열의 형태로 출력이된다. 따라서 우리는 적절하게 캐스팅을 시켜줘야한다. 1 2 3 4 5 6 7 8 9 a,b = input().split() a = int(a) b = int(b) print(a + b) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ .. 2020. 3. 14.
파이썬 | input()으로 입력 값 여러개 동시에 받기 문제를 풀다보면, 문제의 입력값이 두개, 세개로 여러개를 동시에 입력 받을 때가 있다. 그럴 때, 그냥 줄바꿈으로 받는 형태면 아래와 같이 그냥 input()을 몇개든 적으면 된다. 1 2 3 4 5 6 7 8 a, b = input(), input() print(a,b) 10 20 10 20 Process finished with exit code 0 cs 하지만 이제 몇몇의 문제들은 입력값이 줄바꿈 기준이아니라, 띄어쓰기 기준, 콤마(,) 기준으로 받을 때도 있다. 분명 군대가기 전에 배웠을텐데, 생각이 1도 나지 않는다. 방법은 간단했다. 1 2 3 4 5 6 a, b = input().split() print(a,b) 10 20 10 20 Process finished with exit code .. 2020. 3. 14.