본문 바로가기

반응형

PS/백준

(318)
[BOJ] 백준 2920 음계 (Swift) 문제 https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net 풀이 이 문제는 입력받은 배열이 1, 2, 3, 4, 5, 6, 7, 8 과 같이 1부터 8까지 오름차순으로 되어있으면 ascending 8, 7, 6, 5, 4, 3, 2, 1 과 같이 8부터 1까지 내림차순으로 되어있으면 descending 그 외 mixed 를 출력하면 되는 문제 소스코드 후기 sorted 메서드로 쉽게 풀 수 있는 문제 굳이 s..
[BOJ] 백준 2741 N 찍기 (Swift) 문제 https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 반복문에 대해 알고있다면 쉽게 풀 수 있는 문제이다. for, forEach, while문 등 다양한 방법으로 풀 수 있지만, (1...n)의 range와 forEach를 사용하여 풀이했다. 소스코드 후기 문법을 배운지 얼마 안됐거나, 온라인저지에 익숙하지 않을 때 연습겸 풀어볼 수 있는 문제라고 생각함
[BOJ] 백준 2577 숫자의 개수 (Swift) 문제 https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 풀이 먼저 a, b, c를 입력받은 후, 곱을 구해줬다. 곱한 수는 Int 자료형 형식인데, 이를 Int 배열로 변경하여 카운트를 세려고 했는데, Dictionary를 사용하는 것이 더 편할 것 같아서 Dictionary로 변경해주었다. Dictionary의 여러 생성자가 있지만 uniquingKeysWith를 파라미터로 사용하는 생성자를 사용하여, 튜플 형식으로 변환해준 Array를 겹치는 키가 있다면 value를 더하는 방식으로 Diction..
[BOJ] 백준 2475 검증수 (Swift) 문제 https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 풀이 문제에 나온 설명대로 풀면 되는 문제 먼저, map 함수를 통해 입력받은 배열을 제곱 형태로 바꾸어준 뒤 reduce로 배열의 합을 구한 뒤 10으로 나눈 나머지 값을 출력해서 풀 수 있었던 문제 소스코드 후기 map, reduce와 같은 고차함수를 쓰지 않아도 쉽게 풀 수 있는 문제였다.
[BOJ] 백준 10799 쇠막대기 (Swift) 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 풀이 스택을 사용해서 풀 수 있는 문제 괄호 문자열을 for문을 돌려서 살펴보면서 다음과 같은 동작을 수행한다. 여는괄호 등장 시 "(" 는 stack에 추가 닫는괄호 등장 시 stack에 추가된 여는 괄호 제거 (pop) 2번 동작에서 직전의 문자를 보고 수행할 행동이 달라져야 함 직전의 문자가 여는 괄호라면? 레이저임, 기존의 Stack의 size 만큼 더해주어야 한다. Stack에 담겨있는 여는괄..
[BOJ] 백준 1935 후위 표기식2 (Swift) 문제 https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 풀이 스택을 사용하여 풀 수 있는 문제 먼저, 이 문제를 풀려면 후위 표기식을 계산하는 방법에 대해 알아야 한다. 후위표기식을 계산하는 방법 숫자가 들어오면 스택에 넣어줌 연산자가 들어오면 스택에서 2개의 숫자를 뽑고 연산 처리 다시 스택에 넣음 마지막 스택에 남은 수가 계산된 결과 뺄셈과 나눗셈을 순서에 주의하여 풀이하면 쉽게 풀 수 있는 문제 소스코드 후기 스택 자료구조의 기본..
[BOJ] 백준 28278 스택 2 (Swift) 문제 https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 풀이 스택 자료구조의 동작과정을 안다면 쉽게 풀 수 있는 문제 스택을 struct나 class로 구현해도 문제없지만, 간단하게 구현이 가능해서 따로 구현하지는 않았습니다. 소스코드 후기 스택을 처음 접할 때, 연습삼아서 풀기에는 좋을 것 같다. 완전 생 기본문제
[BOJ] 백준 1205 등수 구하기 (Swift) 문제 https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 풀이 존재하는 랭킹 리스트에서 점수를 입력받고, 자신의 등수를 출력하는 문제입니다. 하지만 리스트의 길이보다 낮다면 랭킹 리스트에 올라갈 수 없으므로 -1을 출력해주어야 합니다. 기존의 랭킹 리스트에서 입력받은 점수를 넣어주고, 내림차순으로 정렬을 해주었습니다. 점수가 랭킹리스트에 올라갈 수 없을 정도로 낮은지 확인하기 위해서 랭킹 리스트에서 lastIndex를 ..

반응형