본문 바로가기
728x90

취준! ✒/삼성21

[코테준비] 삼성12. 코드트리: 나무박멸 python 백준보다는 코드트리에 더 신형 문제가 있는 것 같아서 코드트리로 넘어왔다! 코드트리- 삼성 SW 역량테스트 기출문제 링크: https://www.codetree.ai/training-field/frequent-problems 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 나무박멸 링크: https://www.codetree.ai/training-field/frequent-problems/problems/tree-kill-all/description 난이도:골드 4 분류: dx dy technique, simulation 직접 푼 여부: O 언어: 파.. 2023. 10. 4.
[코테준비] 11. 백준- 주사위 윷놀이 (17825) python "삼성 SW 역량 테스트 기출 문제" 주사위 윷놀이 링크:https://www.acmicpc.net/problem/17825 난이도:골드 2 분류: 구현, 시뮬레이션, 브루트포스 알고리즘, 백트레킹 직접 푼 여부: X -블로그를 보면서 이해하는데 꽤 걸렸다. 풀이 노트 참고한 블로그1: https://velog.io/@yoonuk/%EB%B0%B1%EC%A4%80-17825-%EC%A3%BC%EC%82%AC%EC%9C%84-%EC%9C%B7%EB%86%80%EC%9D%B4-Python 참고한 블로그2: https://juhi.tistory.com/52 1번을 보며, 이해가 안돼서 열심히 그림판에 그려봤다. 근데 뭔가 너무 지저분 해지고 이해가 안돼서 블로그2를 보니 이해가 되어 그것을 바탕으로 주석을 달았고, 아래 그림을 그렸다. 우선 이 .. 2023. 9. 25.
[코테준비] 10. 백준- 게리맨더링 2 (17779) python "삼성 SW 역량 테스트 기출 문제" 게리맨더링 2 링크:https://www.acmicpc.net/problem/17779 난이도:골드 3 분류: 구현, 시뮬레이션, 브루트포스 알고리즘 직접 푼 여부: X - 블로그를 보고 풀다가 이해가 안되는 것들은 다 내가 이해한대로 수정해서 풀었다. 풀이 노트 제약조건들은 문제에 나온대로 해주면 된다. 처음에 문제를 이해하는데 시간이 오래 걸렸다. 예시 그림에서 3,4 구역이 어디부터 시작하는지 주의해서 보자! ( 1,2 구역이 어디까지인지) 딱 중앙을 못 나누니까 하나가 더 넓게 사용하고 있으니 가로 세로 각각 어디서 누가 더 많은 영역을 차지하는지 주의해서 볼 것 ! 문제 풀이의 흐름 1. input 받기 2. 가능한 r,c,d1,d2 고르기 (def check) 3. 가능한 곳들 인구수 계산해서.. 2023. 9. 24.
[코테준비] 9. 백준- 연구소3 (17142) python "삼성 SW 역량 테스트 기출 문제" 연구소3 링크:https://www.acmicpc.net/problem/17142 난이도:골드 3 분류: 그래프이론, 브루트포스 알고리즘, 그래프 탐색, BFS 직접 푼 여부: X 풀이 노트 "연구소의 모든 빈 칸에 바이러스가 있게 되는 최소 시간을 출력한다. " 모든 칸에 바이러스가 있으면 된다. 굳이 다 활성 바이러스일 필요는 없다. 아래 velog에서 잘 정리해주셔서 참고하여 문제를 풀었습니다. 풀이 순서는 1. 활성화할 바이러스를 m개 고른다. itertools를 쓰지 않고 dfs사용. (select_virus) 2. 다 고르면, 해당 바이러스들을 확산 시킨다. bfs사용 (defussion) 간단한 변수명을 제 취향에 맞게 바꾸고, 이해를 하며 주석을 추가하였습니다. 그리고 바이러스를 고르는 d.. 2023. 9. 23.
[코테준비] 8. 백준- 미세먼지 안녕! (17144) python "삼성 SW 역량 테스트 기출 문제" -작성중 미세먼지 안녕! 링크:https://www.acmicpc.net/problem/17144 난이도:골드 4 분류: 구현, 시뮬레이션 직접 푼 여부: O 그런데 numpy를 써야하는 것이라 다시 코드 짬 풀이 노트 일단, 생각과정은 아래와 같다. 여기서 공기청정기 (aka 공청기 from now on)로 인한 공기의 확산이 일어날 때, 1)slicing해서 통으로 옮길것이냐, 2)한칸씩 옮길 것이냐 골라야했고, 아무생각없이 1번을 했다. 그 코드는 아래와 같고 실패했다. 이유는 2차원 배열 슬라이싱은 내가 쓴대로 하면 아무 의미가 없었기 때문(=틀린방법!)이다. (그래서 그냥 리스트 상에서 슬라이싱하려면 https://programming119.tistory.com/169 이방법을 써야하는데, 이렇게 하면 .. 2023. 9. 21.
[코테준비] 7. 백준- 나무 재테크(16235) python "삼성 SW 역량 테스트 기출 문제" 나무 재테크 링크:https://www.acmicpc.net/problem/16235 난이도:골드 3 분류: 구현 직접 푼 여부: O 그런데 시간초과나서 다른 글 참고함 풀이 노트 아래노트 필기처럼 생각하고 풀다가, 시간 초과가 났다. 시간초과난 코드는 아래와 같다. 시간복잡도가 복잡도가 k*n*n*m*8*(1000log1000)인데, 그러면 10*(3+1+1+2+3) = 10*10 가 되었기 때문에.. 당연히 시간초과가 난 것..! 그래서 그 밑에는 시간초과가 나지 않는 코드를 작성했다! deque가 appendleft가 있는지 몰랐는데, 있고 이것의 시간복잡도는 무려 O(1)!! 만세다 그리고 heapq를 사용했던 것은 "어린"나무부터 양분을 먹는다는 조건 때문이였는데 이는 사실 별로 sorting이.. 2023. 9. 20.
[코테준비] 6. 백준- 경사로(14890) python "삼성 SW 역량 테스트 기출 문제" 경사로 링크:https://www.acmicpc.net/problem/14890 난이도:골드 3 분류: 구현 직접 푼 여부: X (요즘 시간이 없어서 그냥 문제를 보고, 바로 풀이를 본다. 대신 코드를 쓸 때는 내 스타일대로, 바꾸고 주석을 많이 쓴다.) 언어: 파이썬 풀이 노트 [1] 우선, 길을 가로/세로만 갈 수 있으니 각각을 따로 확인하면 된다. 여기서 세로 길을 확인할 때 필요한 "열"만 list를 가져오는 방법은 다른 곳에서도 많이 쓸 것 같으니 몰랐다면, 메모해 두자. for i in range(n): column = [array[j][i] for j in range(n)] [2] 각 길을 확인하며 못 가는 경우를 생각해 보자 1. 높이차이가 1 이상이면, 바로 탈락 2. 경사로를 설치할 때.. 2023. 9. 17.
[코테준비] 5. 백준- 주사위 굴리기(14499) python "삼성 SW 역량 테스트 기출 문제" 주사위 굴리기 링크:https://www.acmicpc.net/problem/14499 난이도:골드4 분류: 구현, 시뮬레이션 직접 푼 여부: △ (요즘 시간이 없어서 그냥 바로 풀이를 보며 풀고 있다. 하지만, 코드는 보지 않고 풀었다) 언어: 파이썬 풀이 노트 아래 사진처럼, 주사위를 굴리면 어디가 어떻게 변하는지 생각해보고 구현하였다. !!주의사항!! 이런 2차원 행렬을 이용할 때 주의해야할 것이 있다. 평소에 우리는 x,y좌표로 생각을 하지만, 2차원 행렬에서는 행,렬 순 즉 y, x순이다. 그래서 값을 받을 때도 y, x로 받아야하고, 사용할 때도 array[y][x]로 해야한다. 그래서 row, column을 의미하는 r,c를 사용하기도 하는데 둘다 어느정도 헷갈릴만한 사항이 있기에 주의하자... 2023. 9. 16.
[코테준비] 4. 백준- 시험 감독(13458) python "삼성 SW 역량 테스트 기출 문제" 시험 감독 링크:https://www.acmicpc.net/problem/13458 난이도:브론즈2 분류: 수학, 사칙연산 직접 푼 여부: O 언어: 파이썬 아래 코드에서 중요한 포인트가 있다. a-b>0 조건을 주는 것 ! 왜냐면, 해당 조건이 없다면 총감독만으로 충분할 때, ans에 음수를 더하는 꼴이 되기 때문! import sys n=int(sys.stdin.readline()) alist= list(map(int, sys.stdin.readline().split())) b,c = map(int, sys.stdin.readline().split()) ans = n # 일단 총감독관은 꼭 있어야하므로 for a in alist: if a-b>0: ans += (a-b)//c if (a-b)%c!= .. 2023. 9. 13.
728x90