한 달 정도 남은 삼성 하반기 코테때문에 고민이 많았다.
계속 백준 단계별을 풀며 기초를 차근차근 쌓는 것이 맞을지, 아니면 삼성 SW 테스트에서 빈출로 나오는 DFS, BFS, 시뮬레이션으로 바로 넘어가는 것이 나을지 말이다.
고민하다가, 속성으로 삼성 코테 유형을 연습할 수 있는 좋은 블로그 글을 발견해서 우선 여기 나온 문제들을 먼저 풀어보기로 했다. 삼성 기출을 속성으로 설명해주시고, 기출문제 중 아주 쉬운 것들을 먼저 추천해주셔서 빠르게 DFS, BFS유형을 복습하고 삼성 기출에 익숙해질 수 있을 것 같았다.
(알파카고수 님의 블로그 글 참고:https://m.blog.naver.com/wpghks7/221584113312)
1) 가변 인자
# 가변 인자
# 5 1 2 3 4 5 이런 식으로 앞에 숫자에 따라 뒤에 받아야 할 숫자가 달라질 경우.
while True:
a, *arr = map(int, input().split())
if a == 0:
break
print(a, arr)
2) 1차원 리스트
# 1차원 리스트
a = [0] * 10
b = [0 for _ in range(10)]
3) 2차원 리스트
* 절대 쓰면 안되는 방법
arr = [[5] * 3] * 3
arr[2][1] = 2
print(arr)
#출력 결과: [[5, 2, 5], [5, 2, 5], [5, 2, 5]]
써야 하는 방법
# 써야 하는 방법
arr_1 = [[5] * 3 for _ in range(3)]
arr_2 = [[5 for _ in range(3)] for z in range(3)]
arr_1[2][1] = 2
arr_2[2][1] = 2
print(arr_1)
print(arr_2)
# 출력 결과
# [[5, 5, 5], [5, 5, 5], [5, 2, 5]]
# [[5, 5, 5], [5, 5, 5], [5, 2, 5]]
4) 반복해서 입력 받기
L, A, B, C, D = [int(input()) for _ in range(5)]
# 입력 예시
# 25
# 44
# 6
# 7
# 5
5) 2차원 배열 입력받기
공백으로 구분되어 입력받을 경우 (Ex. 오른쪽)
# 공백으로 구분되어 입력받을 경우
n, m = map(int, input().split())
arr_1 = [list(map(int, input().split())) for _ in range(n)]
# 출력 결과
# [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 6, 0], [0, 0, 0, 0, 0, 0]]
붙어서 입력될 경우 (Ex. 왼쪽)
# 붙어있는 것이 입력될 경우
# map을 쓰면 입력받은 숫자 하나하나가 리스트 요소가 됨.
n, m = map(int, input().split())
arr_2 = [list(map(int, input())) for _ in range(n)]
# 출력 결과
# [[1, 0, 1, 1, 1, 1], [1, 0, 1, 0, 1, 0], [1, 0, 1, 0, 1, 1], [1, 1, 1, 0, 1, 1]]
6) 빠른 입력
import sys
a = sys.stdin.readline().rstrip()
이걸 매번 치는 것이 귀찮으므로, 아래와 같이 input에 lmabda 이용해 정의해두면 그냥 input()으로 처리 가능
import sys
input = lambda: sys.stdin.readline().rstrip()
전에 풀어본 문제인데, 여기에 람다로 정의한 sys.stdin.readline() 함수를 활용해보았다.
# 15552 빠른 A+B
import sys
read = lambda: sys.stdin.readline().rstrip()
T = int(read())
for tc in range(1, T+1):
N, M = map(int, read().split())
print(N + M)
사용자 입장에서는 긴 코드를 다시 치지 않아도 되서 간편하긴 한데, 시간은 lambda로 미리 정의할 때가 더 걸렸다.
'개발 공부 > 알고리즘 이론' 카테고리의 다른 글
[삼성SW테스트 준비] 3. 큐, 스택, 덱 (0) | 2022.08.10 |
---|---|
[삼성SW테스트 준비] 2. 정렬 (0) | 2022.08.10 |
[알고리즘 공부] 3. 완전 탐색(brute force) (0) | 2022.08.02 |
[알고리즘 공부] 2. 배열, 동적 배열, 단일 연결 리스트 (0) | 2022.07.09 |
[알고리즘 공부] 1. 시간, 공간 복잡도 (0) | 2022.07.07 |