[Swift] 홀짝 구분하기 / LV.0, 181944, 프로그래머스

문제: 자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181944 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181944) 제한사항: 1 ≤ n ≤ 1,000 풀이: let a = Int(readLine()!)! let resultString = a % 2 == 0 ? "\(a) is even" : "\(a) is odd" print(resultString) Ternary operator(삼항 연산자) 사용해서 문제를 해결 하였습니다. 입련된 수를 2로 나눈 나머지가 0인지 확인하여 짝수인지 확인할 수 있습니다. ...

2023년 6월 29일 · 1 분 · Sobamemil

[Swift] 문자열 돌리기 / LV.0, 181945, 프로그래머스

문제: 문자열 str이 주어집니다. 문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181945 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181945) 제한사항: 1 ≤ str의 길이 ≤ 10 풀이: readLine()?.forEach { print($0) } 가로로 제시된 문자열을 세로로 하나씩 출력하면 되는 문제입니다. 문자열을 하나하나 순회하며 출력해주면 됩니다. 저는 forEach 문법을 사용해서 문자열을 하나씩 출력해 주었습니다. ...

2023년 6월 22일 · 1 분 · Sobamemil

[Swift] 문자열 붙여서 출력하기 / LV.0, 181946, 프로그래머스

문제: 두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다. 입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181946 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181946) 제한사항: 1 ≤ str1, str2의 길이 ≤ 10 풀이: print(readLine()!.components(separatedBy: [" "]).joined().replacingOccurrences(of: " ", with: "")) 두 문자열 사이의 공백을 제거하고 출력하면 되는 문제입니다. 방법은 아주 많겠지만 한 줄로 해결해 보았습니다. ...

2023년 6월 20일 · 1 분 · Sobamemil

[Swift] 덧셈식 출력하기 / LV.0, 181947, 프로그래머스

문제: 두 정수 a, b가 주어질 때 다음과 같은 형태의 계산식을 출력하는 코드를 작성해 보세요. a + b = c https://school.programmers.co.kr/learn/courses/30/lessons/181947 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181947) 제한사항: 1 ≤ a, b ≤ 100 풀이: let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! } let (a, b) = (n[0], n[1]) let result = a + b print("\(a) + \(b) = \(result)") // 또는 // print(a, "+", b, "=", a + b) 문자열을 포맷에 맞춰 출력하는 문제입니다. 문자열에 직접 ()을 사용해서 변수를 출력할 수도 있고, 아래 주석처럼 콤마(,)로 나눠서 출력할 수도 있습니다. ...

2023년 6월 20일 · 1 분 · Sobamemil

[Swift] 특수문자 출력하기 / LV.0, 181948, 프로그래머스

문제: 다음과 같이 출력하도록 코드를 작성해 주세요. !@#$%^&*(\'"<>?:; https://school.programmers.co.kr/learn/courses/30/lessons/181948 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181948) 풀이: print(#"!@#$%^&*(\'"<>?:;"#) // 또는 // print("!@#$%^&*(\\'\"<>?:;") swift에서는 특수문자를 출력하는 데 여러 방법이 있습니다. 그 중 문자열 앞 뒤로 # 을 사용하면 특수문자를 그대로 출력합니다. 또는 아래 주석처럼 \ 이나 " 처럼 이미 키워드로 사용하고 있는 특수문자들은 앞에 \ 를 하나 붙여주면 특수문자가 문자열 그대로 출력됩니다. ...

2023년 6월 19일 · 1 분 · Sobamemil

[Swift] 대소문자 바꿔서 출력하기 / LV.0, 181949, 프로그래머스

문제: 영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181949 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181949) 제한사항: 1 ≤ str의 길이 ≤ 20 str은 알파벳으로 이루어진 문자열입니다. 풀이: let line = readLine()! let resultString = line.map { character in if character.isLowercase { return character.uppercased() } else { return character.lowercased() } }.joined() print(resultString) // 또는 // print(readLine()?.map { $0.isLowercase ? $0.uppercased() : $0.lowercased() }.joined() ?? "") 입력 받은 각 문자 하나하나가 대문자인지 소문자인지 판단해서 반대로 출력하면 되는 문제입니다. ...

2023년 6월 19일 · 1 분 · Sobamemil

[Swift] 문자열 반복해서 출력하기 / LV.0, 181950, 프로그래머스

문제: 문자열 str과 정수 n이 주어집니다. str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181950 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181950) 제한사항: 1 ≤ str의 길이 ≤ 10 1 ≤ n ≤ 5 풀이: let inp = readLine()!.components(separatedBy: [" "]).map { $0 } let (s1, a) = (inp[0], Int(inp[1])!) let resultString: String = { var string: String = "" for _ in 0..<a { string += s1 } return string }() print(resultString) // 또는 // let resultString = String(repeating: s1, count: a) // print(resultString) 문자열을 n 번 반복해서 이어 붙이면 되는 문제입니다. ...

2023년 6월 19일 · 1 분 · Sobamemil

[Swift] a와 b 출력하기 / LV.0, 181951, 프로그래머스

문제: 정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181951 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181951) 제한사항: -100,000 ≤ a, b ≤ 100,000 풀이: let n = readLine()!.components(separatedBy: [" "]) let (a, b) = (n[0], n[1]) print("a = \(a)\nb = \(b)") // 또는 // print("a =", a) // print("b =", b) 두 가지의 정수를 공백 기준으로 나눈 후, 형식에 맞게 출력 해주면 되는 문제입니다. ...

2023년 6월 18일 · 1 분 · Sobamemil

[Swift] 문자열 출력하기 / LV.0, 181952, 프로그래머스

문제: 문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요. https://school.programmers.co.kr/learn/courses/30/lessons/181952 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/181952) 제한사항: 1 ≤ str의 길이 ≤ 1,000,000 str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다. 풀이: 입력 받은 문자열을 그대로 출력해주면 되는 문제입니다. print(readLine() ?? "") readLine 함수는 optional을 return 하므로 ?? 연산자(nil 병합 연산자 / coalescing operator)를 사용해 줍니다. ...

2023년 6월 18일 · 1 분 · Sobamemil

크러스컬 알고리즘 구현 2 (붕괴법칙을 적용한 방법)

프로그램 개요 : C 언어를 사용한 크러스컬 알고리즘(Kruskal Algorithm) 구현. 붕괴법칙을 적용하지 않은 크러스컬 알고리즘. 붕괴법칙을 적용한 크러스컬 알고리즘 프로그램 구조 및 설계: 이전 글과 이어지는 포스팅입니다. 프로그램의 구조와 설계 방법은 아래 링크에서 보실 수 있습니다. 2021.04.09 - [알고리즘] - 크러스컬 알고리즘 구현 1 (붕괴법칙을 적용하지 않은 방법) 참고로 아래 코드에서 붕괴법칙(collapsing rule)을 적용하여 문제를 해결하는 알고리즘이 있는데, 붕괴법칙이란 임의의 노드 i에 대해 find 연산을 한다고 하였을 때, 정상적으로 루트를 찾았다면 i부터 루트까지의 경로에 있는 모든 노드들을 그 루트의 자식으로 만드는 것을 말합니다. 즉, i에 대해 find 연산을 한 번 하였다면 그 이후부터는 i부터 루트까지의 경로에 있는 모든 노드들이 한 번에 자신의 루트를 찾을 수 있다는 뜻이 됩니다. ...

2021년 4월 9일 · 9 분 · Sobamemil