211013_TIL

anotherhoon·2021년 10월 13일
0

TIL

목록 보기
6/28

10월 13일 (수)

오늘 한 일

1. ssafy 객관식
오늘은 아침에 컨디션이 안좋아서 오후를 넘겨서 공부를 했다.

  1. ssafy 객관식 문제집을 샀는데 거의 바뀐게 없어서 실망했지만 전에 책에 직접 풀어서 다시 풀기 애매했던 문제들을 다시 빈 노트에 풀 수 있었다.

2. ssafy CT

2-1 <비트 변환>
'0, 1'로 이루어진 N개의 숫자로 만들어진 수열이 주어진다.
두 가지 행동 중 하나의 행동을 할 수 있다.

1. 두 숫자의 위치를 바꾼다.
2. 하나의 숫자를 0 또는 1로 바꾼다.

우리가 가진 수열과 원하는 수열이 주어질때, 원하는 수열을 만들기 위해 최소 몇 번의 행동을 해야 하는지 구하라.
현재 수열 01010 목표수열 10101
01010
10101

0  3쌍 1 2쌍 
1      0

2쌍을 서로 위치를 바꾸고 하나를 1로 바꾼다.
즉 쌍의 숫자가 큰 값이 답이다.

2-2 비트연산 XOR (다른걸 선호 같으면 1[TRUE] 다르면 0[FALSE])
A^B = C 식에서 A와 C가 주어질 때 B를 구하여라.

A^B = C
A^C = B
교환 법칙이 성립한다.


이진수 하나가 주어질 때 그 수에 9를 곱한 수를 이진수로 구하여라.
shift를 떠올리자 8일 곱한다는건 왼쪽시프트 3번 하면되다.

9를 곱한다는 건 
A*9 = A(8+1)
	= A*8+A
    즉 왼쪽 세칸 + A이다.

ex)이진수 111에 9를 곱한 수를 이진수로 구하여라

111000
+  111
-------
111111 <= 정답

2-3 진법
<2 to 8>
이진법수 하나가 주어진다.
주어진 수를 팔진수로 바꾼 값을 구하여라.

이진수 abcde = a*2^4 + b*2^3 + c*2^2 + d*2^1 + e*2^0
팔진수 abcde = a*8^4 + b*8^3 + c*8^2 + d*8^1 + e*8^0
이진수 1011011101 =
(1*2^0)2^9+(0*2^2+1*2^1+1*2^0)2^6 + (0*2^2 + 1*2^1 + 1*2^0)2^3 + (1*2^2 + 0*2^1 + 1*2^0)2^0
1 + (2+1) + (2+1) + (5)
팔진수 1335 <= 정답

<n진법 나누기>
n과 n진법 수가 주어질 때, 이 수를 n-1로 나눈 나머지를 구하여라.
(an^4 + bn^3 + cn^2 + dn^1 + e) % (n-1)
5
an^4 % (n-1)
= (annnn) % (n-1)
= a(n/n-1)^4 (5를 4로 나눈 나머지는 1// 어떤 수를 하나 작은 수로 나눈 나머지는 항상 1)
= a*1
즉 (a + b + c + d + e) % (n-1)

ex) 6, 1352
(1+3+5+2) % 5
1 <= 정답

0개의 댓글