Home

[백준] 17140번 이차원 배열과 연산 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17140 2. 풀이 삼성 SW 역량테스트 문제입니다. 문제 풀이 방법은 아래와 같습니다. R 연산은 단순 구현으로 해결할 수 있습니다. C 연산은 배열을 이용하여 구현하려면 복잡할 수 있습니다. 2차원 배열 Transpose → R 연산 → Transpose 하여 손쉽게 해결합니다. 저와 풀이 방법이 비슷한데 소스코드가 깔끔한 코드가 있습니다. 참고하시면 좋을 것 같습니다. BIU Tistory 문제 해결 방법 유의사항은 아래와 같습니다. Flag 비트를 사용하지 않으려고 하다가, 출력이 2번 되는(겹치는) 경우가 ...

Read more

[백준] 17822번 원판 돌리기 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17822 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이는 주석을 통하여 서술하였으니 참고해주세요. 아래 0으로 나눠버리는 런타임 에러 (ZeroDivisionError) 예외 케이스가 존재했는데, 이런 예외 케이스를 더 고려하기 위해 많이 연습을 해야될 것 같습니다. from collections import deque N, M, T = map(int, input().split()) circles = [] for _ in range(N): circles.append(list(map(int, input().split()))) f...

Read more

[백준] 16234번 인구 이동 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/16234 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이 순서는 아래와 같습니다. BFS를 이용하면 되는 문제입니다. BFS를 사용할 때, is_visited 배열을 생성하여 만들었는데, 이번 경우에는 벽을 기준으로 다른 나라에서 한 나라로 접근할 수 있는 경우의 가지수가 4가지 입니다. 그래서 저는 visited를 3중 배열로 만들어, 4개의 방향에서 각각 방문해도 가능할 수 있게 배열을 생성했습니다. from collections import deque N, L, R = map(int, input().split()) A = [lis...

Read more

[백준] 17825번 주사위 윷놀이 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17825 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이 순서는 아래와 같습니다. 위와 같이 원들에 대하여 index를 지정해놓고, 배열을 이용하여 [점수, 다음 index]를 기록해놓습니다. dfs를 이용하여 모든 경우의 수를 확인합니다. 4개의 말에 대하여 10번의 turn 에 대하여 모두 확인해봐도 4^10 이기 때문에 그렇게 큰 숫자가 아닙니다. START, END = 0, 32 horse = [0,0,0,0] dice_list = list(map(int, input().split())) answer = 0 # [...

Read more

[백준] 20058번 마법사 상어와 파이어스톰 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/20058 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이는 주석을 통하여 전개했으니, 소스코드를 확인해주세요. 추가로 아래와 같은 시행착오를 겪었습니다. 처음에 문제를 잘 못 이해하여, 풀이에 시간이 오래 걸렸습니다. 백준 문제 질문 을 통해서 확인해보니 아래의 답변을 통해 해결할 수 있었습니다. 예제에서 나온 그림을 보면 아래처럼 이해해도 해결이 되어 이런 문제가 발생했습니다. 답변 주신 분 감사합니다. skh2080 : 레벨 2면 4x4 행렬 안에서 2x2 4개가 시계방향으로 돈다고 생각하셨죠? 그게 아니라 ...

Read more

[백준] 17837번 새로운 게임 2 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17837 2. 풀이 삼성 SW 역량테스트 문제입니다. 자세한 풀이 설명은 아래에 주석으로 남겼습니다. Python의 배열을 이용하여 말들을 쌓았습니다. 참고사항으로는 아래와 같습니다. https://www.acmicpc.net/board/view/49492 에서 디버깅에 대한 정보를 얻을 수 있었습니다. 해당 배열의 값과 다르면 확인해보세요 https://hose0728.tistory.com/41 에서 숏코딩을 확인해보세요. 말들을 모두 살펴보아야되는데, 해당 과정을 거치지 않고 index 실수한 채로 시간을 많이 허비했습니다...

Read more

[백준] 17779번 게리맨더링 2 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17779 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이 순서는 아래와 같습니다. x, y, d1, d2 의 가능한 모든 수에 대하여 for문으로 동작시켰습니다. out of index 여부로 불가능 한 경우에는 건너뜁니다. 각 구역에서 공통되는 부분을 찾아보았습니다. 아래와 같이 직사각형으로 이루어진 부분과 감소하는 부분으로 이루어져있습니다. 해당 부분의 index를 체크하여 문제를 해결해줍니다. 참고사항은 아래와 같습니다. 중간에 복붙을 하다가 다른 값을 써버린 케이스가 있는데, 항상 헷갈리지 않게 변수를 자주 ...

Read more

[백준] 19237번 어른 상어 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/19237 2. 풀이 삼성 SW 역량테스트 문제입니다. 풀이 순서는 아래와 같습니다. 이 문제는 상어가 move 하면서 주변 냄새를 남긴 곳들의 값이 1씩 감소합니다. 이러한 과정을 수행하기 위하여 함수로 나눴습니다. move(상어들을 이동시킴) : 가능한 갈 수 있는 곳 모두 체크 -> 주변에 빈 곳과 자신의 냄새가 있는 곳을 찾음 -> 주변에 빈 곳이 있으면 우선순위 높은거 선택. 없으면 냄새가 있는 곳에서 우선순위 높은거 선택. minus_smell(냄새 값들을 1씩 감소시킴) ...

Read more

시리얼 통신의 종류(Uart/Usart, I2C, SPI)와 개념 및 차이점 정리

1. 시리얼(Serial) 통신이란? 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종입니다. 시리얼(Serial)이라는 것은 직렬이라는 뜻으로, 패러럴(Parallel)과 반대되는 단어이다. 통신에는 직렬 통신과 병렬 통신의 2가지 방식이 존재합니다. 직렬 통신은 데이터를 보낼 때 한 데이터 선(lane)에서 데이터를 보내는 방식이고, 병렬 통신은 여러 개의 선(lane)에서 보내고자 하는 데이터를 나눠서 보내는 것입니다. 예를 들어 1010 데이터를 보내려고 할 때 상황은 아래와 같습니다. 시리얼 통신에서는 1개의 lane으로 데이터를 모두 ...

Read more