본문 바로가기
First step/Algorithm

[codeup]기초100제 중간점검

by Joshua21 2022. 2. 10.

알고리즘공부를 하기로 결심하고 그 후 조금씩 문제를 풀고있다.

오늘은 그 중에 입문단계였던 codeup 100제의 절반인 50번까지 푼 후 중간 점검겸 회고를 해보려고 한다.

50번까지 풀면서 처음보는것도 막히는 것도 전혀없이 쭉쭉 풀꺼라고 생각했지만 막상 해보니 처음보는 것도있었다.

다시 한번 기억해 둘것

  • \를 사용해서 문자열안에 "\'같은 기호들을 넣는 것
  • print('%x'% n) n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력
  • print('%X' % n) n에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력
  • print('%o' % n) n에 저장되어있는 값을 8진수(octal) 형태 문자열로 출력
  • n = ord(input())  입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.
  • print(chr(c))  #c에 저장되어 있는 정수 값을 유니코드 문자(chracter)로 바꿔 출력한다.

 비트시프트(<<)

컴퓨터 내부에는 2진수 형태로 값들이 저장되기 때문에,
2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어드는데

왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,
오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다.

n = 10
print(n<<1)  #10을 2배 한 값인 20 이 출력된다.
print(n>>1)  #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2)  #10을 4배 한 값인 40 이 출력된다.
print(n>>2)  #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

 

2의n승 만큼 곱하기

정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자. (0 <= a <= 10, 0 <= b <= 10)

예시
a = 2
b = 10
print(a << b)  #210 = 1024 가 출력된다.

참고
예를 들어 1 3 이 입력되면 1을 23(8)배 하여 출력한다.

 

자주 사용해보지 않은 것들이 주로 모르는 것들이었지만 알고리즘테스트 간에 정수처리를 해야할경우 사용할수도있으니 기억해둬야겠다.

'First step > Algorithm' 카테고리의 다른 글

사전 준비  (0) 2022.01.26