본문 바로가기

반응형

PS/백준

(318)
[BOJ] 백준 1065 한수 (Swift) 문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 풀이 이 문제는 N이 1 ~ 1000 까지로 주어짐 1부터 99까지는 한수다. 2자리 이하이기 때문에 전부 등차수열이라고 할 수 있음 N이 100보다 작다면, N개가 한수이다. 1000은 한수가 아님! 100 ~ 999의 숫자가 한수인지 아닌지 판별하면 된다. 만약 한수라면 count를 증가시킨다. 한수인지 아닌지 판별하는 것은 말 그대로 등차수열인지 확인만 해주면 된다. 3자리 수에 대해서만 ..
[BOJ] 백준 4673 셀프 넘버 (Swift) 문제 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 풀이 1부터 10000까지 셀프 넘버가 아닌 숫자를 구해준다. (생성자가 있는 숫자) (각 자리수 + 자기 자신의 수) 연산을 해서 나온 수는 생성자가 있는 숫자일 것 생성자가 있는 숫자를 집합에 넣어준다. Array에 넣어줘도 상관없지만, 생성자가 2개 이상인 경우 중복이 되므로 Set을 생각했음 1 ~ 10,000까지 집합에 있는지 확인하..
[BOJ] 백준 4344 평균은 넘겠지 (Swift) 문제 풀이 먼저, 평균 값이 얼마인지 구해야함. 평균 값은 소수점으로 나올 수 있으므로 Double 자료형으로 입력을 받아준다. 평균 값이 얼마인지 구했다면, 평균을 넘는 학생의 수를 구해준다. 고차함수 filter를 사용해서 쉽게 구할 수 있음 평균을 넘는 학생의 수 / 총 학생의 수 * 100이 평균을 넘는 학생들의 비율 소수점 셋째 자리까지 출력해야 하므로, String(format::)을 사용해서 셋째 자리까지만 출력되도록 구현하면 끝! Foundation을 import 해야 사용할 수 있음 소스코드 후기 String(format::)에 대해 몰랐다면 풀기에 조금 불편했을 것 같다. 처음에는 round 메서드를 사용해서 소수점 셋째짜리를 반올림해주고 풀었는데 String(format::)이 반올림..
[BOJ] 백준 8958 OX퀴즈 (Swift) 문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 풀이 step이라는 변수를 두어서 O가 연속으로 나올 때, step의 값을 1씩 증가시키고 그 값을 출력 값에 더해주는 방식으로 풀이할 수 있음 X 문자열을 기준으로 문자열을 나누는 방식으로도 풀이할 수 있음 OOXXOOOXO 라는 문자열이 있다면, X를 기준으로 문자열을 나누면 ["OO", "OOO", "O"]의 배열이 만들어짐 ["OO"(1 + 2), "OOO"(1 +..
[BOJ] 백준 1546 평균 (Swift) 문제 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 풀이 나눗셈 연산을 위해 Double 자료형으로 입력을 받아야 함 입력받은 점수를 원래점수 / 가장 큰 점수 * 100으로 변환 후, 시험 본 과목의 갯수로 나눠주면 새로운 평균 값을 구할 수 있음 map을 사용하면 쉽게 풀이할 수 있음 소스코드 후기 고차함수 map과 reduce를 사용하면 반복문을 사용하지 않고도 가독성 좋게 풀이할 수 있는 것 같다.
[BOJ] 백준 3052 나머지 (Swift) 문제 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 입력받은 수에서 42로 나눈 나머지를 Set 자료형에 넣어준 후, Set 자료형의 count로 접근하면 쉽게 풀 수 있다! 소스코드 후기 Set 자료형에 대해 알고 있다면 쉽게 풀 수 있는 문제인 것 같다.
[BOJ] 백준 5597 과제 안 내신분..? (Swift) 문제 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 풀이 문제에 출석번호에 중복은 없다.라는 문장을 보고 Set 자료형을 사용하면 될 것 28번 반복문을 돌려 입력받아서 Set 자료형에 넣어주고 1부터 30중 Set에 없는 번호를 출력해주면 풀이할 수 있음 소스코드 후기 Dictionary, Array, Set 등의 다양한 방법으로 풀이할 수 있지만 Set이 문제의 의도에 가장 맞아보임 1부터 30까지의 수를 Set 자료형에 넣어..
[BOJ] 백준 16719 ZOAC (Swift) 문제 https://www.acmicpc.net/problem/16719 16719번: ZOAC 2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로 www.acmicpc.net 풀이 사전 순으로 가장 앞에 오도록 하는 문자를 선택 해야 하는데, 그렇다면 선택되지 않은 문자중 가장 빠른 문자를 선택해야 할 것 그 이후에는 선택된 문자로부터 오른쪽에 있는 문자를 선택해야 사전 순으로 더 앞설 것임 BAB라는 문자열이 입력으로 주어졌을 때를 예로 들어보자. 밑에 적은 숫자는 index 숫자에요. 맨 처음에는 당연히 A가 선택되겠죠? 왼쪽에 있는 B를 선택했을 때..

반응형