본문 바로가기

코테4

Counting sort(계수 정렬) - O(n) Counting sort는 배열에 담긴 숫자가 몇 번씩 들어가 있는지 counting하여 정렬해주는 방식입니다! 예를 들어서 1부터 9까지의 정수만 들어갈 수 있는 int[] unsorted = {9, 2, 1, 3, 9, 7} 이라는 배열이 있다고 가정하면 index가 0부터 9까지의 빈 배열을 하나 만들어 줍니다. int[] countArr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} countArr의 인덱스가 1부터 9까지의 정수 역할을 해주게 됩니다. index 0 에는 숫자 0의 갯수가 들어가고, index 1에는 숫자 1의 갯수가 들어가고, index 2에는 숫자 2의 갯수가 들어가고,,,index 9에는 숫자 9의 갯수가 들어가게 되는 것입니다. (여기서는 1~9만 들어가므로 .. 2022. 5. 31.
countAllCharacters 문자열을 입력받아 문자열의 각 letter를 key로 갖고 letter가 등장하는 횟수를 value로 갖는 HashMap 를 return 하는 문제. (입력받은 문자열이 빈 문자열인 경우에는 return null) 예시. "apple" 을 입력받았다면 {a = 1, p = 2, l = 1, e = 1} 을 반환 나의 풀이 또 다시 완전 탐색과 double for loop으로..ㅎㅎ 그래도 나름대로 중복된 key는 갖지 않는 Map의 특성을 이용했다는 점에서, 그 동안 사용해 보지 않은 새로운 방식을 하나 이용했다는 게 성장점인 것 같다. 물론 return type 자체가 HashMap인 것도 있지만! public HashMap countAllCharacter(String str) { //TODO.. if.. 2022. 5. 18.
Bitwise Operator(비트 단위 연산자) 비트 단위 연산을 위한 연산자가 따로 존재한다. 먼저 비트는 이진수로 0 또는 1의 값을 갖는다. 비트 단위 연산이란 이진수의 각 비트 값을 연산하는 것을 의미한다. 위의 그림에 나온 이진수를 예로 들자면, 01010010 이라는 이진수의 각 비트마다 (0,1,0,1,0,0,1,0) 모종의 연산을 수행하는 것이다. Swift에는 NOT, AND, OR, XOR, Shift 연산자가 있다. (Java도 거의 동일한 것 같았다.) 1. NOT 연산자 (~) : 0과 1이 반대되는 수를 반환한다. (1의 보수에 해당한다.) ~0101 = 1010 이 되는 셈이다. 예를 들어서, 정수 5에 NOT 연산자를 사용하면 (~5) 이는 ~0101으로 인식이 된다. 그러면 0101에서 0과 1을 반전시킨 수인 1010이.. 2022. 4. 15.
[Swift] 1712 손익분기점 참고: Swift로 알고리즘 문제를 풀 때, 공백을 사이에 두고 입력값이 다수 제시되는 경우에 1 let input = readLine()!.split(separator: " ").map { Int($0)!} cs 와 같이 입력값을 받아 input이라는 array에 값을 넣을 수 있습니다. 예를 들어, 입력되는 값이 1 2 3 4 5 이고 위와 같이 코드를 작성하면 input = [1,2,3,4,5]가 됩니다. 1712 손익분기점 문제: 제출한 답변: 1 2 3 4 5 6 7 8 9 import UIKit let input = readLine()!.split(separator: " ").map { Int($0)!} if input[1] >= input[2] { print(-1) } else { print.. 2022. 2. 9.
반응형