본문 바로가기

반응형

Swift

(359)
[BOJ] 백준 2644 촌수계산 (Swift) 문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 풀이 예제입력 1를 트리로 그려보았음 7 -> 3의 촌수는 3임, (3만큼의 거리로 해석하였습니다) 촌수를 계산해야 하는 번호 중 앞번호를 Start, 도착 번호를 End로 두고, DFS/BFS를 Start 번호부터 시작 한 후, 도착 번호를 만난다면 그때의 Depth를 출력해주면 되겠다고 생각했다. 만약 도달할 수 없다면 -1 을 출력해주자! 소스코드 후기 그래프의 간선..
[Swift] 기본 자료형에 대해 알아보자! - 2 (Bool, Character, String) 지난 포스팅에서 Int, UInt 자료형에 대해 알아보았습니다! 이번 포스팅에서 Bool, Character, String에 대해 알아보도록 하죠! Bool Struct로 되어있음 true / false 값을 갖는 유형 Bool 자료형은 아주 간단하죠? 예제 코드를 보며 조금 더 알아봅시다. 다음은 Character 자료형에 대해 알아보겠습니다. Character 단 하나의 "문자"를 의미함 Struct로 되어있음 이모티콘 사용 가능 하나 이상의 유니코드 스칼라 값으로 구성됨 Character 자료형도 예제 코드를 보며 살펴보도록 합시다. 위 코드를 살펴보던 중 이상한 점이 하나 있을 거에요. \u{1f436} 이라는 이상한 문자가 하나가 껴있는데 이는 유니코드를 넣어줄 때 \u{} 포멧을 사용하고, U..
[BOJ] 백준 1012 유기농 배추 (Swift) 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 DFS, BFS로 풀이하면 되겠다고 바로 생각이 들었다! 2차원 배열 그래프를 전부 순회하면서, 그래프의 값이 1일 때, DFS 혹은 BFS를 돌리고 총 몇번 돌리는지 갯수를 세면 되겠다고 생각했다. 그래프의 범위를 넘는지 여부를 알 수 있는 isVaildCoordinate(x:y:) 라는 함수를 만들어주었음! 그래프의 범위를 넘지 않고, 방문하지 않았으며, 이동할 좌표의 값이 1이라면 방문하는 길..
[Swift] 기본 자료형에 대해 알아보자! - 1 (Int, UInt) 오늘은 Swift에서 제공하는 자료형에 대해 알아봅시다. Int Struct로 되어있음 부호가 있는 정수 값 타입 32bit CPU 라면 Int는 Int32와 크기가 같음 64bit CPU 라면 Int는 Int64와 크기가 같음 Int는 알겠는데.. Int 뒤에 숫자가 붙는거를 처음 보신 분들도 계실꺼에요. Int8, Int16, Int32, Int64... 예상이 가시나요? 뒤에 붙은 숫자는 bit를 의미합니다. 즉, Int8 자료형의 크기는 8비트 입니다. Int8은 8비트이므로, -128 ~ 127의 범위를 갖을 수 있습니다. 한 번 확인해 볼까요? Int8, Int16, Int32, Int64, Int 전부 확인해보도록 하죠! UInt Struct로 되어있음 부호가 없는 정수 값 타입 32bit ..
[BOJ] 백준 2606 바이러스 (Swift) 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 DFS, BFS로 풀이할 수 있을 것이라 생각했음 1번 노드에서 DFS 또는 BFS를 수행한 후, 1번 노드를 제외하고 몇개의 노드를 방문했는지 확인을 하면 풀 수 있을 것이라 생각함 소스코드 후기 Solved.ac에서 BFS/DFS 항목에 standard 뱃지를 달아놓은 문제여서 그런지, BFS/DFS 기초적인 문제라고 생각했다. 한 마디로 풀이하면 이 문제는 연결 요소의 갯수를 계산하는 ..
[Swift] let, var의 차이 데이터 저장 Swift에서 let, var 을 사용하여 메모리에 데이터를 저장할 수 있음 [let or var] [변수명]: [타입] = [값] 과 같은 형태로 사용됨 타입은 생략 가능! (타입을 생략하게 되면 컴파일러가 변숫값의 타입을 추론하여 타입을 지정해요!) 먼저 let에 대해 알아보도록 하죠! let Swift 에서는 let 키워드를 사용해 상수를 생성할 수 있습니다. 상수란, 변하지 않는 값 입니다. 즉, 상수로 선언하게 되면 이후에 값을 변경할 수 없습니다. 따라서 상수로 선언되었다는 것을 보면 이후에 값의 변화가 없다는 것을 직관적으로 알 수 있겠죠? 또한, 의미가 명확하지 않은 매직넘버를 상수로 선언하여 사용할 수 있습니다. 상수의 경우 대문자와 밑줄을 사용하여 네이밍을 짓는 컨벤션도 있..
[Programmers] 타겟 넘버 - Swift 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 retur..

반응형