알고리즘 공부를 어디서부터 해야할지 잘 모르겠어서
파이썬 문법부터 알려주는 알고리즘 책으로 아침마다 스터디를 하고 있다.
근데 오늘은... 못일어났는지 연락이 안된다 책도 나한테 없다보니...!
그래서 오늘은 '백준 알고리즘'의 단계 완전 초보용! Lv.1 입출력과 사칙연산을 풀어보려고한다.
1)파이썬으로 문제를 풀어도 좋지만, pypy3로 하면 코어적으로 더 빠르게 동작하기 때문에 권장한다고 합니다 단, 메모리를 더 사용할 수 있기 때문에 파이썬으로 제출 후 안되면 PyPy3로 제출해보는 것도 방법이다
2)출력하는 문제의 경우 작은 글자오타도 반영되기 때문에
가능하면 복사+붙여넣기로 작성하는것이 불필요한 시간낭비를 줄일 수 있다
3)마지막으로 사칙연산에서 마지막으로 알아두어야할 팁!
+, -, /, * : 더하기, 빼기, 나누기, 곱하기
%, // : 나누기 후 나머지, 나누기 후 몫
[2557번 문제]
: 구글링을 해보면 간단한 이 문제만으로도 다양한 풀이방법이 업로드 되어있는데
아무것도 모르는 코린이이기 때문에 단순하게 풀고 넘어가보았다.
print('Hello World!')
[10718번 문제]
: 순간 초보자가 보기에 '이게 뭔 소리야? 캠프?'라고 생각이 들 수 있지만 결국 출력을 동일하게 하면 정답을 맞출 수 있다.
파이썬에서는 print로 출력하면 한줄씩 차지하기 때문에 그대로 2번 출력해주면 된다.
print('강한친구 대한육군')
print('강한친구 대한육군')
[10171]
: 주의해야할 것은 2가지이다.
첫번째는 (백슬래쉬)를 그대로 출력하기 위해선 문자 뒤에 \를 하나 더 넣어줘야하는 점
두번째는 '(작은따음표)를 그대로 출력하기 위해선 출력문자를 감싸는 따움표를 ""(큰따움표)로 작성해야하는 점이다
''(작은따음표)로 작성할 경우 (' ) ( ')') -> ' ) ( '와 ) 2가지로 따로 인식할 수 있기 때문이다
print('\ /\\')
print(" ) ( ')")
print('( / )')
print(' \(__)|')
A = int(input_number[0])
B = int(input_number[1])
--->A,B라는 임의의 문자에 input_number의 0번째, 1번째 숫자를 할당하겠다는 의미이다
(여기서 컴퓨터의 첫번째 숫자는 1이 아닌 0이기 때문에 0,1,2,3 순으로 작성하는 것은 참고해주세요)
--->위 함수를 int()함수 안에 넣어줘서 정수값으로 만들어줘야한다
예를 들어 (1 3)입력했다면 1+3=4가 되는 것이 아니라 문자 그대로 ('1'+'3')이 되어 13이 출력되기 때문이다
input_number = input().split(' ') ---> input_number는 명찰처럼 단순 이름이다.
A = int(input_number[0])
B = int(input_number[1])
print(A + B)
[1008번 문제]
: 위와 동일하게 사칙연산을 +에서 /로 변경해주면 끝이다. 소숫점자리까지 친절하게 알아서 출력된다
단, 파이썬이기 때문에 가능하다. 다른 언어였을 경우 소숫점까지 출력하기 위해 별도의 문법이 추가되었을 수 있는 점은 참고하자
[10430번 문제]
:주의할 점은 2가지이다
첫번째는 split()는 항상 ''안에 있을 필요는 없다 split에 '' 또는 띄어쓰기를 해놓고 습관적으로 A, B, C라고 작성할 경우 에러가 뜨고 시간낭비가 될 수 있으니 별것 아니지만 주의하자
두번째는 문제를 옮겨적을 때 먼저 연산되어야하는 부분에 ( )를 잘 넣어주자 이상하게 틀리면 에러 뜬다
A,B,C = input().split()
A = int(A)
B = int(B)
C = int(C)
print((A+B)%C)
print(((A%C)+(B%C))%C)
print((A*B)%C)
print(((A%C)*(B%C))%C)
위 10430문제는 풀이방법이 1가지 더 있다
map함수를 사용하면 더 짧은 코드로 문제를 풀 수 있다
: int함수는 리스트를 정수형으로 바꾸어줄 수 없지만 map함수는 가능하다
예시)
A,b = map(int, ['231', '1234'])
A
231
B
1234
(그냥 int함수는 리스트를 정수처럼 출력할 수 없음)
: 따로 int설정을 하나씩 해주지 않고, map(int, input())형태로 작성하면 더 짧은 코드로 정수값을 출력받을 수 있다
A,B,C = input().split()
A = int(A)
B = int(B)
C = int(C)
-- 이 부분을 아래와같이 줄일 수 있다 --
A,B,C = map(int, input().split())
(동빈나 유튜브 참고하였습니다 설명 good)
잘 보고 갑니다~