본문 바로가기

Algorithm/BOJ

[기초] 01. 입출력과 사칙연산


 

 

 

입출력과 사칙연산 단계

입출력과 사칙연산

www.acmicpc.net


📪 [입출력과 사칙연산] 

📌1. 기본적인 내용

📌2. 기본적인 내용

for문을 사용하면 자동으로 다음줄에 출력됨. (즉, '\n'이 필요하지 않다.)

 

📌3,4. escape 문자 이해하기 ('\', print(r ) )

  -'\'자체를 출력하고자 할때 '\', '\\' 둘다 사용이 가능하다.

  -'\n'과 같이 백슬래시를 활용하거나, 따옴표 내부에서 따옴표를 사용하고자 하는 경우에는 '\'가 앞에 필수이다.

  - 작은따옴표 내부에 큰따옴표, 큰 따옴표 내부에 작은 따옴표는 가능하다.

  - ''' '''를 이용하면 여러줄을 주석처리해줄 수 있다. 

  - print( ) 내부에서 "(내용)"을 출력할때 내부에 있는 모든 escape코드를 무시하고 싶다면 print(r"(내용)")  한다.

 

📌 5. map을 이용하여 input받기

  • map에 대한 이해 : list의 요소에 함수를 적용시켜 결과 반환.
    ( 참고 출처:  3months.tistory.com/338 )
  • map과 input을 활용해 보자.
    (참고 출처 : https://dojang.io/mod/page/view.php?id=2286)

따라서 정리하자면 input.split을 하였을 때 나오는 값의 type은 list이기에 map이 가능하고, map을 하였을 때 결과는 map 객체이기에 맵핑된 개별 아이템들을 활용하고 싶다면 이들 개개인들을 변수에 담아야 한다. 

 

[ 내가 짠 코드] 위의 개념들을 활용한 문제 풀이 형식

[더 짧은 풀이 보기]
더보기
더보기
더보기
더보기

 

(백준에 올라와있는 다른 사람의 풀이 )

 

 


해석

파이썬으로 타입확인을 위해 돌려본 결과

-'  '.join ( ) 메소드는  '( )' 괄호 안에 있는 리스트를 ' '의 형식으로 연결시켜 하나의 문자열로 만드는 함수이다.

-'  '.join ( ) 메소드는  '( )' 괄호 안에 있는 리스트, 혹은 문자열을 ' '의 형식으로 연결시켜

   하나의 문자열로 만드는 함수이다.

-    eval( ) 메소드는 '( )' 괄호 안에 있는 식(expression)인 문자열을 매개변수로 받아 실행하는 함수이다.

 

 input으로 받은 문자열을 join을 통해 각 문자사이에 특정 형식으로 연결시켜 출력한 문자열을 eval을 통해 실행한결과 값을 출력하도록 짠 코드이다.

 

 

📌6. map을 이용하여 input받기

 

✔ strip(문자형식)  

 원하는 문자를 지워내는 메소드로 default값의 경우 공백을 지우게 설정. 

 이때 문자열 좌나 우의 공백은 지울 수 있지만, 사이 사이에 있는 공백은 지워지지 않는다.

 

✔ replace(이전문자형식, 이후문자형식)

 존재하는 문자를 원하는 문자로 지정해 변경하는 메소드.

 이를 활용해 replace(" ",'")를 사용하면 문자 좌우 뿐만 아니라 사이사이에 있는 공백까지 전부 제거 가능하다.

 

✔ split(문자형식)

지정한 문자형식을 기준으로 문자열을 분리해 list화 하는 메소드, default로는 공백을 기준으로 분리해 list를 형성.

[방법1] eval을 이용하여 푸는 방법

 

6번 문제의 경우 '1 2'라는 하나의 문자열 형태로 인풋을 받았을 때에, 1-2의 연산결과값인 -1이 아웃풋이 되어야 한다.

5번 문제와 유사하기에 join만을 이용해 풀이를 시도하였으나 1-2의 결과 값이 3이 출력되는 것을 알 수 있었다. 

 

[다른 풀이도 보기]
더보기
더보기
더보기
더보기
[방법2] map을 이용하여 푸는 방법

 

[방법3] 가장 숏코드

 

 

📌7. 사칙 연산

a,b=map(int,input().split())
print(a+b,a-b,a*b,a//b,a%b,sep='\n')

- '//'는 소수점을 떼주는 나누기 연산자

- '%'는 나머지를 구해주는 연산자

 

 

📌8. 나머지

a, b, c = map(int, input().split())
first = (a + b) % c
second = ((a % c) + (b % c)) % c
third = (a * b) % c
fourth = ((a % c) * (b % c)) % c
print(first, second, third, fourth, sep='\n')

 

🔔 중요 개념 정리하기

✔escape 문자

✔strip

✔replace

✔split

✔map

✔join

✔eval

✔print - sep

 

 

728x90

'Algorithm > BOJ' 카테고리의 다른 글

[기초] 06. 함수  (0) 2022.02.21
[기초] 05. 1차원 배열  (0) 2022.02.07
[기초] 04. while문  (0) 2022.02.07
[기초] 03. for문  (0) 2022.02.07
[기초] 02. If문  (0) 2022.02.06