목록전체 글 (473)
MUKER_DEV with iOS
25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 성공 풀이 import Foundation var credit = 0.0 var major = 0.0 for _ in 0..
10812번: 바구니 순서 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 성공 풀이 let NM = readLine()!.split(separator: " ").map { Int($0)! } let N = NM[0], M = NM[1] var arr = Array(1...N) for _ in 0..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 성공 풀이 func solution(_ numbers:[Int]) -> [Int] { var stack = [Int]() var result = Array(repeating: 0, count: numbers.count) for i in (0..
2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 성공 풀이 let N = Int(readLine()!)! for i in 1...N{ print(String(repeating: " ", count: N-i)+String(repeating: "*", count: 2*i-1)) } for i in 1..
10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 성공 풀이 let NM = readLine()!.split(separator: " ").map { Int($0)! } var arr = Array(1...NM[0]) for _ in 0..
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 성공 풀이 (BFS) let NM = readLine()!.split(separator: " ").map { Int($0)! } let N = NM[0], M = NM[1] var arr = Array(repeating: [Int](), count: N+1) var visited = [Bool](repeating: false, count: N+1) var count = 0 for _ in 0..
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 성공 풀이 let N = Int(readLine()!)! var cnt = [0,0] var arr = [[Int]]() for _ in 0..
1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 성공 풀이 let N = Int(readLine()!)! var arr = [[Int]]() var cnt = [0,0,0] for _ in 0..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 실패 풀이 func solution(_ numbers:[Int64]) -> [Int64] { return numbers.map { var n = $0 + 1 for i in n... { if (i^$0).nonzeroBitCount [Int64] { return numbers.map { let next = ~$0 & ($0+1) return ($0 | next) & ~(next >> 1) } } 풀이 키워드 비트연산자 비트가 2개 이하로 다른 수 중 제일 작은 수를 구하는 방법은 비트의 제일 오른쪽 0이 1로..
17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 나의 풀이 let n = Int(readLine()!)! var dp = [Int](repeating: 5, count: n+1) dp[0] = 0 for i in 1...n { var j = 1 while j * j