본문 바로가기

반응형

백준

(322)
[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를 선택했을 때..
[BOJ] 백준 2562 최댓값 (Swift) 문제 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 풀이 array의 인스턴스 메서드인 max에 대해 안다면 최댓값을 쉽게 구할 수 있음 [공식문서 (max)] array의 인스턴스 메서드인 firstIndex에 대해 안다면 최댓값이 몇 번째 수인지 쉽게 구할 수 있음 [공식문서 (firstIndex)] index는 0부터 시작하니깐 찾은 index에서 1을 더해서 출력해주자..! 소스코드 후기 firstInd..
[BOJ] 백준 10818 최소, 최대 (Swift) 문제 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 문제 제목 그대로 배열의 최소 값, 최대 값을 구하는 문제 min(), max()로 배열의 최소 값, 최대 값을 구하면 되겠군! 소스코드 후기 Array 자료형의 min(), max() 인스턴스 메서드를 알 고 있다면 쉽게 풀 수 있는 문제
[BOJ] 백준 10871 X보다 작은 수 (Swift) 문제 https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 배열을 입력받아서 입력 받은 배열중 X보다 작은 수를 출력시키는 문제 반복문을 돌려서 X보다 작으면 출력, 아니면 continue 하는 방식으로 풀이할 수 있음 Swift에서는 고차함수 중 하나인 filter를 사용해서 X보다 작은 수들만 걸를 수 있음 소스코드 후기 입력받은 배열을 반복문을 사용해서 돌면서 원소가 X보다 작은지 체크하는 방법도 있지만, filter를 사..

반응형