본문 바로가기

반응형

PS

(332)
[BOJ] 백준 2578 빙고 (Swift) 문제 https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 풀이 5 * 5 개의 빙고판에서 빙고가 되는 경우가 어떤 경우인지 생각해봅시다. 가로로 모든 수가 지워진 경우 세로로 모든 수가 지워진 경우 대각선 이 3가지 경우입니다. 먼저, 5 * 5의 Bool 자료형의 2차원 배열을 false로 초기화해줍시다. 그 이후, 숫자를 key, 숫자의 좌표가 value인 Dictionary를 생성해주었습니다. 이제 빙고판에 쓰여진 수를 지울 때, 수를 입력받고, Dicti..
[BOJ] 백준 10157 자리배정 (Swift) 문제 https://www.acmicpc.net/problem/10157 10157번: 자리배정 첫 줄에는 공연장의 격자 크기를 나타내는 정수 C와 R이 하나의 공백을 사이에 두고 차례대로 주어진다. 두 값의 범위는 5 ≤ C, R ≤ 1,000이다. 그 다음 줄에는 어떤 관객의 대기번호 K가 주어진다. www.acmicpc.net 풀이 가로와 세로 길이에 따른 규칙을 구할 수는 없었습니다. 가로 세로가 최대 1,000 이므로 1,000 * 1,000 = 1,000,000으로 완전탐색으로 시간내에 풀이할 수 있다고 생각해 직접 좌석을 배정해 주는 방식으로 풀어야겠다고 생각이 들었습니다. 대기번호가 가로 * 세로 보다 크다면, 좌석을 배정할 수 없는 경우입니다. 아니라면, 2차원 배열을 사용하여 0,0 부..
[BOJ] 백준 1343 폴리오미노 (Swift) 문제 풀이 "XXXX" -> "AAAA", "XX" -> "BB"로 치환해주는 문제입니다. Swift에서는 replacingOccurrences(of:with:) 메서드를 사용해 손쉽게 문자열을 치환할 수 있습니다. https://developer.apple.com/documentation/foundation/nsstring/1412937-replacingoccurrences/ replacingOccurrences(of:with:) | Apple Developer Documentation Returns a new string in which all occurrences of a target string in the receiver are replaced by another given string. dev..
[BOJ] 백준 4779 칸토어 집합 (Swift) 문제 https://www.acmicpc.net/problem/4779 4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net 풀이 가운데 문자열을 공백으로 바꿔줄 때, 몇개의 공백이 들어가는지 확인해봅시다. n이 3일 때, 가운데 공백이 $3^2 = 9$개가 들어가게 됩니다. n이 2일 때는 $3^1 = 3$개가 들어가네요. 즉, 공백은 n에 따라서 $3^{n-1} 개$가 들어가네요. 재귀함수로 접근을 해서 풀어줍시다. n이 0이라면 "-"를 return 해줍시다. n이 0보다 크다면, 공백을 $3^{n-1}개 앞..
[BOJ] 백준 13909 창문 닫기 (Swift) 문제 https://www.acmicpc.net/problem/13909 13909번: 창문 닫기 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 www.acmicpc.net 풀이 창문이 열려있으려면 해당 수의 약수의 개수가 홀수개여야 합니다. 약수의 개수가 홀수개인 수는 제곱수 밖에 없습니다. ex) 1, 4, 9, 16.. n이하의 제곱수들의 개수를 출력해주면 되는 문제입니다. 소스코드 후기 창문이 열려있는 조건에 대해 생각해보고 풀 수 있었습니다.
[BOJ] 백준 15650 N과 M (2) (Swift) 문제 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 1부터 n까지 자연수 중에서 중복없이, 오름차순 형태의 길이가 m인 수열을 모두 출력하는 문제입니다. https://dev-mandos.tistory.com/169 [BOJ] 백준 15649 N과 M (1) (Swift) 문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복..
[BOJ] 백준 15649 N과 M (1) (Swift) 문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 1부터 n까지 자연수 중에서 중복없이 m개를 고른 수열을 모두 출력하는 문제입니다. 백트래킹 알고리즘을 사용하여 풀 수 있습니다. 이미 뽑은 수는 제외하기 위해 visited라는 [Bool] 자료형을 사용하였습니다. 1부터 n까지 for문을 돌면서, 아직 선택하지 않은 수라면 배열에 넣어주고 visited 배열을 사용하여 선택했다는 표시를 해주고, 재귀함수 형태로 다시 1부터 n까지 ..
[BOJ] 백준 1004 어린왕자 (Swift) 문제 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 풀이 출발점에서 도착점으로 이동하면서 행성에 진입하거나, 이탈할 때의 횟수를 구하는 문제입니다. 진입하거나 이탈할 때를 어떻게 알 수 있을까요? 먼저 출발점과 도착점을 그려봅시다. 아무런 행성이 없는 경우, 행성에 진입/이탈 할 필요가 없겠죠?? 다음 두 경우에도 행성에 진입/이탈 할 필요가 없을 것입니다. 다음과 같은 경우에 진입/이탈을 해야합니다. 행성이 출발점을 두르고있거..

반응형