Home

[백준] 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

MBR & GPT(파티션, partition)과 FAT32 & NTFS & EXT3(파일 시스템, File System)이란? 개념 및 차이점 정리

MBR, GPT와 FAT32, exFAT, NTFS, ex4와 같은 용어 개념이 다소 헷갈려 아래와 같이 내용을 정리해 보았습니다. 1. 파티션(partition)과 파일 시스템(File System)의 개념 파티션이란 물리 디스크를 파티션이라는 논리 단위로 나누는 것입니다. 한 디스크에서 최소 1개의 논리 단위 파티션이 필요하며, 여러 가지 논리 단위로 나눌 수 있습니다. 우리가 사용하는 컴퓨터에서 C드라이브, D드라이브로 인식되는 것도 파티션입니다. 파일 시스템이란 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제입니다. 예를 들어, 설명해보겠습니다. 512GB...

Read more

[백준] 1284번 집 주소 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/1284 2. 풀이 while True: _input = input() if _input == '0': break answer = 2 + len(_input) - 1 for x in _input: if x in '1': answer += 2 elif x in '23456789': answer += 3 elif x in '0': answer += 4 print(answer)

Read more

[백준] 1193번 분수찾기 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/1193 2. 풀이 X = int(input()) i = 1 while True: if X > i*(i+1)/2: i+=1 continue residue = X - (i-1)*(i)//2 if i % 2 == 1: print("%d/%d" % ( i+1 - residue , residue )) else: print("%d/%d" % ( residue , i+1 - residue )) break

Read more