본문 바로가기

WIL(What I Learned)

21.10.15

  • 참고
    *2 를 계산한 값을 출력해도 되지만,
    정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용할 수 있다.
    컴퓨터 내부에는 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 가 출력된다.

    정수 10의 2진수 표현은 ... 1010 이다.
    10 << 1 을 계산하면 ... 10100 이 된다 이 값은 10진수로 20이다.
    10 >> 1 을 계산하면 ... 101 이 된다. 이 값은 10진수로 5이다.

(출처: https://codeup.kr/problem.php?id=6046

 

[기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

  • 참고
    어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

    비교/관계연산자 == (equal sign 2개) 는
    왼쪽의 계산 결과값과 오른쪽의 계산 결과값이 같은 경우 True(참)로 계산하고,
    그 외의 경우에는 False(거짓)로 계산한다.
  • 비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

(출처: https://codeup.kr/problem.php?id=6049

 

[기초-비교연산] 정수 2개 입력받아 비교하기2(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

  • 참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서 not 예약어(reserved word, keyword)를 사용할 수 있다.(출처:  https://codeup.kr/problem.php?id=6053  )
  • bool( ) 을 이용하면 입력된 식이나 값을 평가해 불 형의 값(True 또는 False)을 출력해준다.
    식이나 값을 계산해서 결과값이 만들어지는 것을 평가(evaluate)라고 한다. 
  • python 언어에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.

(출처: https://codeup.kr/problem.php?id=6052 )

 

[기초-논리연산] 정수 입력받아 참 거짓 평가하기(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

  • 참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
    불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False 의 불 값으로 계산된다.

(출처:  https://codeup.kr/problem.php?id=6055  )

  • Logical AND: True if both the operands are true
  • not operator는 bool 값에 쓰임에 유의.
  • ~n = -n - 1 (~는 틸드(tilde) 연산자이다.)
  • &연산자 

https://codeup.kr/problem.php?id=6060

  • 비트단위(bitwise)연산자는,
    ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
    <<(bitwise left shift), >>(bitwise right shift)
    가 있다. (출처: https://codeup.kr/problem.php?id=6060 )
  • | 연산자

  • ^ 연산자

https://codeup.kr/problem.php?id=6062

  • 3개의 요소로 이루어지는 3항 연산은
    "x if C else y" 의 형태로 작성이 된다.
    - C : True 또는 False 를 평가할 조건식(conditional expression) 또는 값
    - x : C의 평가 결과가 True 일 때 사용할 값
    - y : C의 평가 결과가 True 가 아닐 때 사용할 값

(출처 : https://codeup.kr/problem.php?id=6063 )

  • 비교연산(<, >, <=, >=, ==, !=) 의 계산 결과는 True 또는 False 의 불(boolean) 값이고,
    불 값들 사이의 논리연산(not, and, or)의 결과도 True 또는 False 의 불 값이다.

(출처 : https://codeup.kr/problem.php?id=6067 )

 

  • s = input()
    s = int(s)
    
    if s // 3 == 4 or s // 3 == 0:
        print('winter')
    elif s // 3 == 1:
        print('spring')
    elif s // 3 == 2:
        print('summer')
    elif s // 3 == 3:
        print('fall')​

'때때로 수들의 특징을 관찰하고 이용하면 매우 간단히 해결할 수도 있다.'

  • 이렇게 산술연산자(+, -, *, / ... )와 대입 연산자(=)를 함께 쓰는 것을 복합대입연산자라고도 부른다.
    같은 방법으로 +=, *=, /=, //=, %=, &=, |=, ^=, >>=, <<=, **= 등과 같이 짧게 작성할 수 있다.
    (출처: https://codeup.kr/problem.php?id=6072 )

 

'WIL(What I Learned)' 카테고리의 다른 글

21.10.22  (0) 2021.10.22
21.10.18  (0) 2021.10.21
21.10.14  (0) 2021.10.14
21.10.12  (0) 2021.10.13
21.10.11  (0) 2021.10.12