파이썬 9

[삼성SW테스트 준비] 4. 순열과 조합

학습자료: 알파카고수님의 블로그(https://m.blog.naver.com/wpghks7/221585604878) [파이썬으로 시작하는 삼성 SW역량테스트] - 4. 순열과 조합 ※실제 시험 시itertools 모듈이 사용 불가능하다는 말이 있습니다. 게시글은 나중에 수정하겠습니다. 이번... blog.naver.com 파이썬에서는 itertools를 이용해 순열과 조합을 쉽게 찾아낼 수 있지만, 이 모듈은 실제 시험장에서 못 쓰게 할 확률이 높으므로 dfs를 이용해 순열과 조합을 찾을 수 있어야 한다. 아래의 블로그 글들을 참고하여 파이썬 상에서 dfs를 이용해 순열과 조합을 만드는 연습을 하자! 순열, 조합 with dfs def permutation(depth, r, arr, visited, re..

[삼성SW테스트 준비] 2. 정렬

학습자료: 알파카고수님의 블로그(https://m.blog.naver.com/wpghks7/221584382367) [파이썬으로 시작하는 삼성 SW역량테스트] - 2. 정렬 입력을 받았다면 앞으로는 필수적인 모듈과 내장함수를 공부하겠다. 아직 본론에 들어가기보다는 역량 테스... blog.naver.com 1) 오름차순 정렬하기 오름차순 정렬에는 두 가지 방법이 있다. 하나는 sort()를 이용해 배열 자체를 변환시키는 방법이다. # 오름차순 정렬하기 # a 자체를 변환시키는 방법 a = [1, 5, 7, 4, 6] a.sort() print(a) # 출력: [1, 4, 5, 6, 7] 다른 하나는 sorted(배열) 형태로 배열을 변경하는 대신, 반환값으로 정렬해 넘겨주는 방식이다. # 오름차순 정렬하..

[백준] 2447. 별 찍기 - 10

2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 이번 문제는 정말 어려웠다...! 한참을 고민해도 답을 찾지 못해서, 푸신 분들의 블로그를 찾다가 재귀를 활용해 굉장히 간단하게 구현하신데다 설명도 이해하기 쉽게 써주신 분의 블로그를 참조해 문제를 풀 수 있었다!(https://mgyo.tistory.com/183) [백준] 2447번 별찍기 문제 재귀 함수 이용해서 풀기 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 ..

[백준] 5622. 다이얼

5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 이 문제는 가장 단순하게 풀었다. 풀고 나서 다른 파이썬 사용자들이 푼 걸 봤더니, 이중 for문을 사용해서 훨씬 길이가 짧고 깔끔하게 코드를 짜신 경우가 많았다.(bb) # 5622 다이얼 # 문자를 다이얼에 해당하는 숫자로 변경하고, # 숫자+1(1을 입력할 때 2초이므로)를 더해주면 되는 문제. # 어렵게 풀면 너무 힘들 것 같아서 가장 쉬운 방법으로 풀어보았다. word = input() sum = 0 for w in word: if w in ['A', 'B', 'C']: sum += 3 elif w in ['D', 'E', 'F']: s..

[백준] 2675. 문자열 반복

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 파이썬 문자열에 +, -, * 같은 연산자가 사용 가능하다는 것만 안다면 어렵지 않게 풀 수 있는 문제였다. # 2675 문자열 반복 T = int(input()) for tc in range(1, T+1): num, word = input().split() num = int(num) P = '' for w in word: P += w * num print(P) P라는 문자열이 들어갈 변수를 생성하지 않고, 바로 반복문에서 그때그때 출력도 가능하다. 단..

[백준] 11654. 아스키 코드

11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 파이썬 내장 함수를 알면 간단히 풀리는 문제이다. 파이썬에서 ASCII 코드를 숫자로 바꾸는 함수는 ord(), 역으로 숫자를 ASCII 코드로 바꾸는 함수는 chr()이다. # 11654 아스키 코드 # 파이썬에서 ASCII -> 숫자는 ord(), 숫자 -> ASCII는 chr() 함수를 사용한다! print(ord(input()))

[백준] 10952 A+B - 5, # 10951 A+B - 4

반복문 단계 1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다. www.acmicpc.net # 10952 A+B - 5 while True: N, M = map(int, input().split()) if N + M != 0: print(N + M) else: break # 10951 A+B - 4 while True: try : N, M = map(int, input().split()) print(N+M) except EOFError: break 10951번은 try-except 문을 활용해 EOFError(파일의 끝에 와서 더 이상 입력 값이 없어, 명령문을 실행시킬 수 없는 상태)일 경우 무한 루프 while 문이 종료되도록 설정했다. 물론 EOFError을 안붙이고 그냥 e..

[백준] 10172. 개

10172번: 개문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...www.acmicpc.net아래 예제와 같이 개를 출력하시오.|\_/||q p| /}( 0 )"""\|"^"` |||_/=\\__|정답:#10172 개print('''|\\_/||q p| /}( 0 )\"\"\"\\|\"^\"` |||_/=\\\\__|''')처음 제출했을 때 출력 형식이 안 맞는다고 떠서 왜인가 했더니 '''코드'''이런 식으로 불필요하게 앞 뒤로 공백을 줘서 그랬었다는... 이야기...

[백준] 10171. 고양이

아래 예제와 같이 고양이를 출력하시오 \ /\ ) ( ') ( / ) \(__)| print() 함수로 문자열을 출력할 때 \ ' " 같은 애들을 어떻게 출력해야 할지 알려주는 귀여운 문제. 정답은 아래처럼 작성했다. print('''\ /\\ ) ( \') ( / ) \(__)|''') print() 에서 여러 줄을 쓸 때는 ''' ''' 혹은 """ """ 를 사용한다. print()에서 \을 문자열로 출력하고 싶다면 \\ 이렇게 두 개를 써준다. print()에서 ', "을 출력하고 싶다면 앞에 \을 붙여 \' , \" 이런 식으로 써주면 된다.