구현
-
[백준] 10163 색종이 with PythonPS 2022. 3. 9. 23:06
📌 BOJ 10163 색종이 💡 조건 평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 색종이의 장수를 나타내는 정수 N (1 ≤ N ≤ 100) N장의 색종이가 주어진 위치에 차례로 놓일 경우, 각 색종이가 보이는 부분의 면적을 구하는 문제 가로 최대 1001칸, 세로 최대 1001칸으로 구성된 격자 모양이다. 격자의 각 칸은 가로, 세로 길이가 1인 면적이 1인 정사각형 색종이가 놓인 상태는 가장 왼쪽 아래 칸의 번호와 너비, 높이를 나타내는 네 정수로 표현한다. 예를 들어, 위 그림에서 회색으로 표시된 색종이는 (1,4)가 가장 왼쪽 아래에 있고 너비 3, 높이 2이므로 1 4 3 2로 표현한다. 색종이가 격자 경계 밖으로..
-
[백준] 9081 단어 맞추기 with PythonPS 2022. 3. 9. 01:10
📌 BOJ 9081 단어 맞추기 💡 조건 단어를 주면 그 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬할 때에 주어진 단어 다음에 나오는 단어를 찾는 프로그램을 작성하는 문제 케이스의 개수 T (1 ≤ T ≤ 10) 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알파벳으로 이루어진다. 단어의 길이는 100을 넘지 않는다. 구현 유형의 문제 🖥 소스 코드 from sys import stdin for t in range(int(stdin.readline())): string = list(stdin.readline().rstrip()) length = len(string) i, j = 0, 1 for idx in range(1, length): if string[id..
-
[백준] 16935 배열 돌리기 3 with PythonPS 2022. 3. 4. 21:40
📌 BOJ 16935 배열 돌리기 3 💡 조건 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 1번 연산은 배열을 상하 반전시키는 연산이다. 2번 연산은 배열을 좌우 반전시키는 연산이다. 3번 연산은 오른쪽으로 90도 회전시키는 연산이다. 4번 연산은 왼쪽으로 90도 회전시키는 연산이다. 5, 6번은 문제 참고 첫째 줄에 배열의 크기 N, M과 수행해야 하는 연산의 수 R이 주어진다. 2 ≤ N, M ≤ 100, N, M은 짝수 1 ≤ R ≤ 1,000 둘째 줄부터 N개의 줄에 배열 A의 원소 Aij가 주어진다. 1 ≤ Aij ≤ 108 연산은 공백으로 구분되어져 있고, 문제에서 설명한 연산 번호이며, 순서대로 적용시켜야 한다. 구현 유형의 문제 🖥 소스 코드 from sys im..
-
[백준] 10384 팬그램 with PythonPS 2022. 3. 3. 19:20
📌 BOJ 10384 팬그램 💡 조건 팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다. 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용한 문장을 말하고, 트리플 팬그램은 모든 알파벳을 적어도 세 번씩은 사용한 문장을 말한다. 입력은 여러 줄의 테스트케이스들로 이루어진다. 첫째 줄에 테스트케이스의 수 n이 주어진다. 각 테스트케이스는 영어 소문자와 대문자, 특수기호들로 이루어진다. 팬그램이 아닐 경우 - Not a pangram 팬그램일 경우 - Pangram! 더블 팬그램일 경우 - Double pangram!! 트리플 팬그램일 경우 - Triple pangram!!! 구현 유형의 문제 🖥 소스 코드 from sys import stdin for i in range(1, int(s..
-
[백준] 2697 다음수 구하기 with PythonPS 2022. 3. 1. 22:59
📌 BOJ 2697 다음수 구하기 💡 조건 A의 다음수는 A와 구성이 같으면서, A보다 큰 수 중에서 가장 작은 수. A와 B의 구성이 같다는 말은 A를 이루고 있는 각 자리수의 등장 횟수가, B를 이루는 각 자리수의 등장 횟수와 같을 때. 첫째 줄에 테스트 케이스의 개수 T(1 data[idx]: a.append(b.pop(i)) a.extend(b) break print(''.join(map(str, a)))🔖 예제 및 실행결과 예제 3 123 279134399742 987실행결과 132 279134423799 BIGGEST⌨️ 문제 풀이 입력받은 숫자를 역순으로 탐색합니다. 왼쪽에 있는 값이 오른쪽보다 작아질 경우, idx에 해당 인덱스 값을 넣어줍니다. 숫자를 a 와 b 로 나누는데..
-
[백준] 15722 빙글빙글 스네일 with PythonPS 2022. 2. 27. 22:03
📌 BOJ 15722 빙글빙글 스네일 💡 조건 달팽이는 원점에서 시작하여 1초에 한 칸 씩, 시계방향으로 아래 그림과 같이 움직인다. 1초일 때 달팽이의 위치는 (0, 1)이다. 몇 초가 지났는지가 입력으로 주어질 때, 현재 달팽이의 위치를 좌표로 출력하는 문제 달팽이가 움직인 시간이 n초로 주어진다. (0 ≤ n ≤ 1000, n은 0이상의 정수) 구현, 시뮬레이션 유형의 문제 🖥 소스 코드 from sys import stdin def solve(): n = int(stdin.readline()) pos = [0, 0] mode, length = 0, 1 cnt = 0 while 1: for i in range(2): for _ in range(2): # Add if i == 0: if mode ==..
-
[백준] 2628 종이 자르기 with PythonPS 2022. 2. 22. 20:01
📌 BOJ 2628 종이 자르기 💡 조건 종이의 가로와 세로의 길이가 차례로 자연수로 주어진다. 가로와 세로의 길이는 최대 100㎝이다. 칼로 잘라야하는 점선의 개수가 주어진다. 셋째 줄부터 마지막 줄까지 한 줄에 점선이 하나씩 아래와 같은 방법으로 입력된다. 가로로 자르는 점선은 0과 점선 번호가 차례로 주어지고, 세로로 자르는 점선은 1과 점선 번호가 주어진다. 점선을 따라 이 종이를 칼로 자르려고 한다. 가로 점선을 따라 자르는 경우는 종이의 왼쪽 끝에서 오른쪽 끝까지, 세로 점선인 경우는 위쪽 끝에서 아래쪽 끝까지 한 번에 자른다. 가장 큰 종이 조각의 넓이가 몇 ㎠인지를 구하는 프로그램 정렬 유형의 문제 🖥 소스 코드 from sys import stdin n, m = map(int, stdin..
-
[백준] 2477 참외밭 with PythonPS 2022. 2. 14. 18:20
📌 BOJ 2477 참외밭 💡 조건 m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20) 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나는 변의 방향과 길이 (1 이상 500 이하의 정수) 변의 방향에서 동쪽은 1, 서쪽은 2, 남쪽은 3, 북쪽은 4로 나타낸다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 구현 유형의 문제 🖥 소스 코드 from sys import stdin n = int(stdin.readline()) nums = [] x, y = [], [] for _ in range(6): direction, length = map(int, stdin.rea..
-
[백준] 1236 성 지키기 with PythonPS 2022. 2. 10. 17:54
📌 BOJ 1236 성 지키기 💡 조건 직사각형 모양의 성을 가지고 있다. 성의 1층은 몇 명의 경비원에 의해서 보호되고 있다. 영식이는 모든 행과 모든 열에 한 명 이상의 경비원이 있으면 좋겠다고 생각했다. 성의 크기와 경비원이 어디있는지 주어졌을 때, 몇 명의 경비원을 최소로 추가해야 영식이를 만족시키는지 구하는 문제 0 m)만큼 순회하면서 row[i], col[j] 가 각각 False 일 경우 r1, r2 에 각각 + 1을 더해준다. r1, r2 중 가장 큰 값을 출력한다. 💾 느낀점 구현 문제이지만, 어디에 경비원이 있어야 각 열과 행이 모두 True 값을 가지는지 생각하는 것이 헷갈렸다. 브론즈라고 했지만, 구현은 역시 그 이상의 티어로 봐야하는 것 같다. 논리적인 사고력이 약하다는 것을 다시 ..
-
[백준] 2535 아시아 정보올림피아드 with PythonPS 2022. 2. 8. 02:20
📌 BOJ 2535 아시아 정보올림피아드 💡 조건 대회참가 학생 수를 나타내는 N, 3 ≤ N ≤ 100. N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사이에 두고 주어진다. 국가 번호는 1부터 순서대로 하나의 정수로 주어지며, 각 학생번호는 각 나라별로 1부터 순서대로 하나의 정수로 주어진다. 점수는 0 이상 1000 이하의 정수이고, 동점자는 없다고 가정한다. 정렬, 구현유형의 문제. 🖥 소스 코드 from sys import stdin n = int(stdin.readline()) grade = [] for i in range(n): a,b,c = map(int, stdin.readline().split()) grade.append((c, a, b)..