구현 (72) 썸네일형 리스트형 [Python] 17413번 단어 뒤집기 2 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 22/09/14 조금 귀찮았던 문자열 문제로, 스택을 이용하여 문제를 접근했다. 문제 접근 방식: 문제 자체는 간단하다. 공백을 기준으로 단어가 정해지는데, 원래 문자열이 주어지면 단어만 전부 뒤집어서 출력해주는 문제이다. 나는 뒤집는다는 점에 주목하여 문자 하나하나를 스택에 담다가 공백을 만나면 그 스택을 뒤집어서 전부 출력하는 것으로 접근했다. 하지만 여기에서 .. [Python] 2684번 동전 게임 https://www.acmicpc.net/problem/2684 2684번: 동전 게임 동전게임은 주로 두 사람이 함께 즐기는 게임이다. 이 중 3-동전게임은 여러 명이 할 수 있는 게임이다. 각 사람은 각각 3-동전수열 중 하나를 선택한다. 3-동전수열이란 앞 뒤 앞과 같은 수열이 www.acmicpc.net 22/09/14 브론즈 문제라서 뇌 빼고 코딩했다. 그냥 문자열 비교를 해서 풀었다. 근데 좀 더 단순한 구현도 있을 것 같다. 문제 접근 방식: 3중 for문으로 구현했다. 제일 바깥쪽 for문은 3-동전수열 중 하나를 뽑는 for문, 두 번째와 세 번째 for문은 문자열 비교를 실행하는 for문인데, 이 문자열 비교를 40개짜리 문자열과 미리 뽑아놓은 3-동전 수열끼리 진행하는 것이다. 가능.. [Python] 5525번 IOIOI https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 22/09/14 은근 아이디어를 요구했던 문제이다. 창의적이고 재미있었던 문제였다. 문제 접근 방식: 처음에는 문자열 S안에 Pn이 몇 개 있는지 물어봐서 인덱스를 하나씩 돌려가며 Pn이랑 매칭이 되는지 판별하는 알고리즘을 짰었다. 그랬더니 문자열의 길이가 M이므로 대략 O(MN) 만큼의 시간 복잡도가 걸린다는 것을 유추할 수 있.. [Python] 1544번 사이클 단어 https://www.acmicpc.net/problem/1544 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 22/09/11 그룹 제출 현황에 있는 문제를 아무 문제나 무작위로 한 문제 골라서 풀었다. 문제 접근 방식: 원형으로 쓴다는 아이디어에서 착안하여 덱 자료구조를 떠올렸다. 파이썬의 deque은 rotate라는 메서드가 존재하기 때문에 이 메서드를 활용하면 될 것이라고 생각했다. 구현은 다음과 같이 진행했다. 새로운 단어가 나오면 cycle_word라는 리스트에 그 새로운 단어를 원형으로 써서 읽힐.. [Python] 3709번 레이저빔은 어디로 https://www.acmicpc.net/problem/3709 3709번: 레이저빔은 어디로 레이저박스라는 게임은 정사각형 모양의 n x n 보드에서 진행한다. (체스판을 상상하면 된다) 레이저박스의 임의의 칸마다 우향우 거울이라는 장치가 설치되어 있고, 마지막으로 레이저 한개가 www.acmicpc.net 22/09/10 그룹 연습에서 풀었던 문제로, 시뮬레이션 문제를 오랜만에 풀어보는 터라 당황스러웠지만 재미있기도 했다. 문제 접근 방식: 특별한 알고리즘은 없고, 문제를 말 그대로 구현했다. 근데 보드를 딱 N*N크기로 구현한 것이 아니라, 그보다 위아래 왼쪽 오른쪽으로 1칸씩 크게 만들었다. 그 이유는 보드에서 레이저를 쏜다고 했으니, 그 레이저를 놓을 공간이 필요하다고 생각했기 때문이다. 우향.. [Python] 25371번 k진수 정수의 자릿수 나누기 25371번: k진수 정수의 자릿수 나누기 (acmicpc.net) 25371번: k진수 정수의 자릿수 나누기 양의 정수 n과 k가 주어진다. n을 k진수로 변환한 수를 a라고 하자. a의 각 자릿수를 0을 기준으로 나눈 결과를 집합 b라고 하자. 0이 연속으로 나와서 공백이 생기는 경우는 집합 b에 포함되지 않는 www.acmicpc.net 22/09/09 정직한 제목, 정직한 문제이다. 제목과 걸맞게 잘 구현하면 되는 문제이다. 문제 접근 방식: 10진법으로 입력받은 숫자를 k진법으로 변환시켜주는 함수를 정의했다. 이 함수는 너무나도 잘 알려져 있고, 진법에 관한 지식이 있다면 충분히 구성할 수 있기 때문에 설명하지 않겠다. 그냥 그 함수와 파이썬의 sum함수, 그리고 '0'을 기준으로 분리하는 sp.. [Python] 2669번 직사각형 네개의 합집합의 면적 구하기 2669번: 직사각형 네개의 합집합의 면적 구하기 (acmicpc.net) 2669번: 직사각형 네개의 합집합의 면적 구하기 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각 www.acmicpc.net 22/09/08 이 문제 또한 브론즈 문제 치고는 독특한 아이디어를 가지고 있다. 얼핏 봐서는 기하학 문제처럼 보이지만, 그렇게 풀면 정말 어렵고, 직접 그림을 그림으로써 해결하는 문제이다. 문제 접근 방식: 그냥 직접 그림을 스케치북에 그리듯이 그림으로써 해결한다. 좌표를 2차원좌표로 받고 거기에 해당하는 곳을 모두 1로 바꿔주면 구현 끝! 어렵게 생각하면 오히.. [Python] 1236번 성 지키기 1236번: 성 지키기 (acmicpc.net) 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 22/09/08 그룹 채점 현황에서 무작위로 골라서 푼 문제로, 의외로 브론즈 문제 치고는 재미있는 아이디어를 가진 문제 같아서 흥미로웠다. 문제 접근 방식: 'X'표시가 되어있는 곳은 이미 경비원이 지키고 있는 줄이라는 뜻이다. 나는 성의 모습을 입력받고, 각 줄에 경비원이 있는지 확인하는 row_check, col_check 리스트를 1로 초기화하며 선언해주었다. 성의 모습을 확인하며, 만약 경비원이.. 이전 1 ··· 5 6 7 8 9 다음