전체 글
-
[백준] 1343번 폴리오미노Algorithm Study/Python 2024. 1. 16. 21:46
https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 출력 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. 출력 조건이 사전순이기 때문에 'AAAA'를 넣을 수 있으면 무조건 넣어야하는 문제라 단순하게 풀 수 있다. count = 0 answer = "" for i in input_string: if i == 'X': count += 1 if count == 4: answer += "AAAA" count = 0 문자는 X , . 두 종류가 있고 X이면 count를 증가시켰다. count가 4가 되면 AAAA..
-
[백준] 11655번 ROT13Algorithm Study/Python 2024. 1. 16. 21:30
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 풀이 입력 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. 입력을 보면 S길이는 100 알파벳 대,소문자는 총 52자이기 때문에 단순 if 문으로 구현해도 특별히 문제없이 해결될 것같지만 아스키 코드를 이용해서 풀어봤다. python은 ord()를 통해 아스키 코드로 변환, chr()를 이용하여 다시 문자로 변화할 수 있다.| 'A'는 65 'Z'는 90 'a'는 97 'z'는 122이다. 전체 ..
-
[정올] 주사위 던지기1Algorithm Study/Python 2021. 10. 15. 01:52
기본적인 DFS로 구현하는 중복순열, 조합, 순열을 만드는 문제이다. 이 3가지 기능은 완전탐색을 요구하는 경우 많이 사용하기 때문에 필수적으로 구현할 수 있어야하고 또 빠른 시간 내에 구현할 수 있어야한다. 풀이 N, M = map(int, input().split()) path = [0 for _ in range(N)] used = [0 for _ in range(7)] def run1(lev): if lev == N: print(*path) return for i in range(1, 7): path[lev] = i run1(lev+1) def run2(lev, start): if lev == N: print(*path) return for i in range(start, 7): path[lev] ..
-
[SWEA] 특이한 자석Algorithm Study/Python 2021. 10. 12. 01:47
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 처음 들어온 톱니바퀴의 이동에 따라서 주변에 있는 톱니바퀴로 어떻게 퍼져나가는지를 구현하면 된다. gears = [deque(map(int, input().split())) for _ in range(4)] 톱니바퀴는 회전을 쉽게 구현하기 위해서 deque로 생성했다. def rotate(index, d): if d == 1: gears[index].appendleft(gears[index].pop()) elif d == -1: gears[index].append(gears[index]..
-
[SWEA] 활주로 건설Algorithm Study/Python 2021. 10. 11. 14:08
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 같은 높이의 구간이 X만큼 연속되어 있는지 찾아내는 문제이다. 단순하게 구간을 계산하면서 넘어갔는데 높이가 바뀌는 경우에 count를 1로 초기화할지 0으로 초기화할지 잘 생각해야하는 문제였다. 풀이 T = int(input()) for test_case in range(1, T+1): N, X = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] answer = 0 # 가로 방향 탐색 f..
-
[SWEA] 무선 충전Algorithm Study/Python 2021. 10. 11. 02:37
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 사용자와 BC의 거리를 계산해서 충전할 수 있는지 판단하고 충전할 수 있다면 어떤 BC를 선택하는 것이 가장 많은 양을 충전할 수 있는지 계산하는 것이 핵심인 문제이다. M, A = map(int, input().split()) # 이동하는 방법 direction = [[0, 0], [-1, 0], [0, 1], [1, 0], [0, -1]] P1 = list(map(int, input().split())) p1x, p1y = 1, 1 P2 = list(map(int, input().s..
-
[SWEA] 핀볼 게임Algorithm Study/Python 2021. 10. 10. 19:12
https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 모든 비어있는 공간에서 4가지 방향으로 핀볼을 움직이면서 점수를 계산하는 방식으로 문제를 해결했다. N = int(input()) + 2 board = [[5 for _ in range(N)]] + [[5] + list(map(int, input().split())) + [5] for _ in range(N - 2)] + [[5 for _ in range(N)]] 먼저 계산을 쉽게 하기위해 모든 가장자리에 5번 블록을 이용하여 벽을 넣었다. 벽이 없으면 범위 밖으로 나가서 방향이 바뀌는..
-
프로세스Computer/CS 2021. 10. 9. 23:55
프로세스 현재 실행 중인 프로그램 I/O-bound 프로세스 : 계산보다 입출력 중심의 프로세스 CPU-bound 프로세스 : 입출력보다 계산을 많이하는 프로세스 - 프로세스 메모리 구조 : 리눅스 기준으로 1GB Kernel 영역, 3GB User 영역 ① text(code) 영역 : 코드 자체를 구성하는 메모리 영역으로 Hex파일이나 BIN파일 메모리 : 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 ② data 영역 : 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. : 초기화 된 데이터는 data 영역에 저장되고, 초기화 되지 않은 데이터는 BSS (Block Stated Symbol) 영역에 저장된다. : 프로그램이..