백준

    [백준] BOJ-15649 N과 M (1)

    [백준] BOJ-15649 N과 M (1)

    문제 N과 M을 입력받아 nPm 의 순열을 구하는 문제였다. 풀이 import Foundation let nm = readLine()!.split(separator: " ").map { Int($0)! } let n = nm.first! let m = nm.last! let nums = Array(1...n) // [1, 2, ..., n] /// nPr func permutation(n elements: [Int], r: Int) -> [[Int]] { var result = [[Int]]() var visited = [Bool](repeating: false, count: n) func permu(_ temp: [Int]) { if temp.count == r { result.append(temp) ..

    [백준] BOJ-14889 스타트와 링크

    [백준] BOJ-14889 스타트와 링크

    문제 문제 풀이 알고리즘 스터디 1주차 문제로, DFS, 백트래킹 알고리즘으로 접근하며 문제풀이를 시작했다. 백트래킹은 "DFS를 기반으로 하며, 어느 정도의 Depth 에 도달하면 탐색을 중단 하는 알고리즘" 정도로 이해하고 접근했다. n이 무조건 짝수로 제공되고, 절반 씩 팀을 나누기 때문에 dfs로 순차 탐색을 진행하다가 n / 2 일 경우 탐색을 중단하고 팀원을 구성하도록 했다. 두 팀간의 능력치 차이가 가장 적은 경우의 능력치 차이를 출력하는 문제이기에 result 변수의 초기값을 Int.max 로 설정해둔 후, min() 과 abs() 함수를 사용해 두 팀 간의 능력치 차이를 구하고 result 와 비교해 더 적은 값으로 업데이트 하도록 했다. import Foundation let n = I..

    [백준 BOJ] BOJ -2309 일곱 난쟁이

    #2309 일곱 난쟁이 문제 정리 9개의 Int 배열에서 2개를 뺐을 때 합이 100이 되는 경우를 찾는 문제입니다. 풀이 import Foundation var heights: [Int] = [] var output: [Int] = [] var sum: Int = 0 // 일곱 난쟁이가 아닌 사람들의 키 var a: Int = 0 var b: Int = 0 // 엔터로 입력 받기 for _ in 0..

    [백준 BOJ] BOJ-1018 체스판 다시 칠하기

    #1018 체스판 다시 칠하기 문제 정리 풀이 import Foundation // 정답 체스판 경우의 수 var correctBoard1: [[Character]] = [] var correctBoard2: [[Character]] = [] for _ in 0..

    [백준 BOJ] BOJ-8393 합

    #8393 합 문제 정리 풀이 import Foundation let n = readLine()!.split(separator: " ").map { Int($0)! } var sum = 0 for i in 1...n[0] { sum += i } print(sum) 1 부터 n까지 for문으로 sum 구하기 풀고나서 알게된 것 reduce 쓰면 숏코딩도 가능할 것 같은데 아직 실력이 모자라다ㅜㅜ

    [백준 BOJ] BOJ-7568 덩치

    #7568 덩치 문제 정리 풀이 import Foundation let n = Int(readLine()!)! var persons = [(weight: Int, height: Int)]() // 입력 받기 for _ in 0..