목록Algorithms (33)
아요 개발 일기
안녕하세요! 날씨가 바람이 쌩쌩 많이 부는 여,, 조금 춥네용,,, 🌬💨 감기 조심하시구! 오늘은 문자열 내 마음대로 정렬하기 문제를 풀어보겠습니다!!! 문제 풀이 여러 방향으로 풀어보다가.. 잘 안 풀려서 다른 분 풀이를 참고해서 풀었습니다....ㅜㅜ strings 문자열의 n만큼 떨어진 곳을 index 상수에 저장해 줍니다. strings 배열에있는 문자열들을 각 s1,s2에 차례대로 저장해주고, s1 문자열과 s2 문자열의 해당 index 위치를 비교하여 return 해줍니다. 값이 같으면 s1 < s2 로 정렬 이외에는 s1[index] < s2[index] 로 정렬 마지막으로 정렬된 값을 Result 상수에 저장해주면 끝! func solution(_ strings:[String], _ n:In..
안녕하세요! 오늘은 문자열 내 p와 y의 개수를 구하는 문제를 풀어보겠습니다 :ㅇ 문제 풀이 ㅎㅎㅎ.. 아주 단순하게 풀었죠? for문으로 문자열의 문자 하나씩만 받을 수 있게 반복문을 돌리고, if문을 사용해서 p와 y에 해당하는 문자가 있으면 count +1해주었습니다. 마지막으로 pcount와 ycount가 같으면 true 아니면 false로 마무리 합니다! 아주 쉽죠?ㅎㅎㅎ 좋다고 생각한 풀이 func solution(_ s:String) -> Bool { let string = s.lowercased() return string.components(separatedBy: "p").count == string.components(separatedBy: "y").count } 아주 깔끔하고 똑똑한 ..
안녕하세요! 오늘은 문자열 내림차순으로 배치하기 문제를 풀어보겠습니다 :D 문제 풀이 저는 for-in문과 sorted 함수를 사용했어요! for-in문으로 문자열의 문자 하나씩(i) 뽑아주고, 문자들을 result 변수에 내림차순으로 정렬해줍니다! 좋은 풀이 func solution(_ s:String) -> String { return String(s.sorted { $0 > $1 }) } 단축 문법을 사용해서 제 코드의 세줄을 하나로 해결 할 수 있어요!.. s 문자열을 문자 하나씩 비교해서 내림차순으로 정렬한 것을 출력해줍니다! 아주 간결하네용 정확성 테스트 와 확실히 이번에는 좋은 풀이가 정확성이 확실히 좋네요!! for문만 없앴다고 이렇게 좋다니 신기합니당,,ㅎㅎ
안녕하세요! 오늘은 소수 찾기 문제를 풀어보겠습니다 :D 문제 풀이 저는 isPrime 함수를 만들어 풀어보았습니다! 소수 구하는 방법은 소수 찾기 Feat. 에라토스테네스의 체 글을 참고해주세요!ㅎㅎ isPrime 함수를 이용해서 Bool 값이 true 일때 count 값을 +1 해줍니다. 그 후에 n = 2 일때는 1을 출력해야하므로 삼항 연산자를 이용해 해당 연산이 true일때 (n = 2) 1을 출력하고, false일때는 count 값을 출력하도록 했습니다! func solution(_ n:Int) -> Int { var primes:[Bool] = [Bool](repeating:false, count:n+1); var count = 0; for i in 2...n { if(!primes[i]){..
안녕하세요! 오늘 날씨 정말 좋져? 이제 곧 여름이 다가오는걸 새삼 느끼게 되네여,,,, 이번에는 문자열 정수로 바꾸기 문제를 풀어보겠습니다! 문제 풀이 흠.. 그냥 Int로 형 변환하면 바로 해결됩니다..!! 아주 쉬운 문제 였네요 ㅎㅎㅎㅎ 오늘은 더 나은 풀이는 패스하겠습니당 ㅎㅎㅎㅎㅎ
안녕하세요!! 요즘 날씨가 너무 좋네요 ㅎㅎㅎㅎㅎㅎ 오늘은 시저 암호 문제를 풀어보겠습니다 :D 문제 원래 문제 설명을 안 하지만! 문제가 조금 헷갈리게 되어있어서 간단하게 적어보겠습니다. 대문자는 대문자로 소문자는 소문자로만 알파벳을 변경해야하고, 공백이 있으면 동일하게 들어가야합니다! 풀이 저는 문제를 보자마자 아 아스키코드를 사용해야겠구나! 라고 생각했어요ㅎㅎ 아래에 아스키 코드표 같이 첨부하겠습니다. 일단 문자열을 문자로 나누기 위해서 for문을 돌렸어요! asciiValue를 통해서 문자의 아스키코드 숫자를 num 변수에 저장해주고, 문제 설명할때 말했듯이 대문자는 대문자로 소문자는 소문자로 변환해주워야한다했죠? 그래서 대문자 65~90, 소문자 97~122까지 switch case문으로 나누..
안녕하세요! 오늘은 약수의 합 문제를 풀어보았습니다~~ 문제 풀이 저는 for-in 문을 사용해서 풀어보았습니다! 일단, n = 0이 아닐때에만 for 문을 n번 반복해줍니다. (n이 0이 아닐시) 그때 만약 n 과 i를 나머지 나눗셈으로 계산했을 때 0이면 (n이 i로 나누어지면 약수) result 변수에 i 를 더해줍니다. (약수의 합) 간단하죠?? 이제 괜찮다고 생각한 풀이를 보겠습니다. 1번 풀이 func solution(_ n:Int) -> Int { guard n != 0 else { return 0 } return Array(1...n).filter{n % $0 == 0}.reduce(0, +) } 오 이 풀이는 guard문과 고차함수 filter, reduce를 사용했네요? guard문은 ..
안녕하세요!! 오늘은 이상한 문자 만들기 문제를 풀어보았습니다 :D 문제 풀이 일단 함수들부터 살펴보겠습니다!! components(separatedBy: " ") 은 띄어쓰기를 기준으로 문자열을 자르는 함수입니다. 자세한 설명은 Split과 Components 글을 참고해주세요 :D enumberated() 는 for-in문과 함께 사용하는 함수 입니다. for (n,c) in "String".enumberated() 위와 같은 형식으로 사용되며, "String" 문자열의 문자를 열거하고 문자열에서의 위치와 함께 각 문자를 출력합니다. 자세한 내용은 Apple Developer 과 [Swift] enumberated() 글을 참고해주세요! uppercased()는 소문자를 대문자로, lowercase..