전체 글 68

[프로그래머스] 코딩테스트 연습 2019 KAKAO BLIND RECRUITMENT 오픈채팅방 with Swift

안녕하세요! 오늘은 프로그래머스 2레벨 오픈채팅방 문제를 풀어볼건데요! 지난주 주말에 1레벨 문제를 다 풀어버려서 1레벨테스트를 한 결과 쉽게 통과했습니다! 2레벨도 꾸준히 다 풀어보고 합격 이미지 올려드릴게요! SWEA A형도 있는데 바로 2레벨부터 갈까 후회(매일 1문제이상 1레벨부터 풀기로 해서 시간이 오래걸려요)중이긴 합니다 ㅠ ㅎㅎ 오늘은 자랑은 여기까지하고! 바로 문제 풀이 들어가겠습니다! 오픈 채팅방 문제는 제 생각에는 해쉬(딕셔너리) 문제라고 생각했습니다! 아이디와 닉네임 쌍으로 이루어져있다고 생각하면 아이디와 닉네임을 key와 value로 쓰고 싶다는 생각이 파바바밧 들더라구요! Swift의 딕셔너리는 key와 value로 이루어져 있고 키로 대괄호를 통해 접근이 가능해서 매우 사용하기 ..

[프로그래머스] 연습문제 N개의 최소공배수 with Swift

안녕하세요! 오늘은 N개의 최소공배수 문제를 풀어보았습니다! 참... 문제가 이상하다고 많이 느낀 문제였는데요! 풀고나서도 찝찝하네요! 우선 같이 풀어보시죠! N개의 최소공배수 각자 다 소수로 나눠서 그 갯수로 문제를 풀었다가 연습문제만 맞고 테스트 코드에서 틀려버려서 풀이 방법을 바꾸었습니다. 두개씩 최소공배수를 구하고 그 수로 다음수와 또 최소공배수를 구하는 방식으로 문제를 풀었습니다! 그러기 위해서는 최대공약수를 구하고 두수를 곱한다음 최대공약수로 나누면 서로의 최소 공배수가 구해지는 방법을 이용하였습니다! 이렇게 두개씩 최대공약수를 구해 마지막 배열에 저장하고 반환하면 문제가 해결됩니다! func solution(_ arr:[Int]) -> Int { var resultArr = arr var r..

[프로그래머스] 이상한 문자 만들기, 자연수 내림차순으로 배치하기, 정수 제곱근 판별 with Swift

안녕하세요! 오늘은 이상한 문자 만들기, 자연수 내림차순으로 배치하기, 정수 제곱근 판별 문제를 풀어보았습니다. 1. 이상한 문자 만들기 이상한 문자만들기는 한 단어의 홀수는 대문자 짝수는 소문자로 만들어서 푸는 문제입니다! 한 문장의 홀수와 짝수로 빠르게 문제를 풀어버리고 틀려서 고생했습니다. ㅠㅠ 문제를 푸실 때 문제를 코딩하는 시간과 비례하게 문제를 읽고 생각해보는 시간을 다들 가져보시는것도 좋습니다! 예전부터 문제만 보면 #include 부터 넣어버리는 습관을 없애야겠다고 생각했습니다! 문제를 보면 문자를 아스키코드로 바꾸고 그 글자가 소문자인지 대문자인지 판별 후 홀수번째에 대문자로 넣어주고 짝수번째에 소문자를 넣어주면 풀 수 있는 간단한 문제입니다! func solution(_ s:String..

[프로그래머스] 서울에서 김서방 찾기, 소수 찾기, 시저 암호

안녕하세요! 오늘은 서울에서 김서방 찾기, 소수 찾기, 시저 암호 문제를 풀어보았습니다! 요즘 문자열 문제를 너무 많이 풀어 문자열 달인이 될까 두렵습니다... 하핳... 이제 같이 문제를 풀어보시죠! 1. 서울에서 김서방 찾기 서울이라는 문자열배열에서 Kim과 같은 문자열을 찾고 출력해주는 것이다. for - in 구문으로 count 를 통해서 배열을 탐색합니다 그후 Kim과 문자열을 비교해서 문자열과 동일할 시 결과를 저장하고 for문을 break로 탈출하면 문제가 해결 됩니다! func solution(_ seoul:[String]) -> String { var count = seoul.count var result = "김서방은 " for i in 0.. Int { var result = 0 va..

[프로그래머스] 문자열 내 p와 y의 개수, 문자열 내림차순으로 배치하기, 문자열 다루기 기본 with Swift

안녕하세요! 오늘은 프로그래머스 문자열 내 p와 y의 개수, 문자열 내림차순으로 배치하기, 문자열 다루기 기본 세문제를 풀어보았습니다! 1. 문자열 내 p와 y의 개수 문자열 내 p, P, y, Y의 개수를 비교하는 문제입니다. String[String.index(String.startIndex, offsetBy: index)]를 이용해 문자열의 한글자씩 가져올 수 있습니다. 이를 통해 P와 p 그리고 Y와 y의 개수를 counting해 같으면 true 다르면 false를 리턴해주면 됩니다! import Foundation func solution(_ s:String) -> Bool { var ans:Bool = false var count = s.count var pCount = 0, yCount = ..

[프로그래머스] 나누어 떨어지는 숫자 배열, 두 정수 사이의 합, 문자열 내 마음대로 정렬하기 with Swift

안녕하세요! 오늘은 나누어 떨어지는 숫자배열, 두 정수 사이의 합, 문자열 내 마음대로 정렬하기 문제를 풀어보았습니다! 1. 나누어 떨어지는 숫자 배열 나누어 떨어지는 숫자 배열문제는 %연산자를 사용할 줄 아는지 물어보는 문제입니다. 나누어 떨어진다는 문제는 대상을 %연산 했을때 0이 나오는지로 판단 가능합니다. 그리고 결과물의 갯수가 0이라면 -1을 넣어주고 sort하여 return 하면 됩니다! func solution(_ arr:[Int], _ divisor:Int) -> [Int] { var answer: [Int] = [Int]() var count = arr.count for i in 0.. Int64 { var fa:Int64 = Int64(a), fb:Int64 = Int64(b) if f..

[프로그래머스] 코딩테스트 연습 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 with Swift

안녕하세요! 오늘은 프로그래머스 다트게임 문제를 풀어보았습니다! 다트 게임문제는 구현 문제였습니다! 이 문제도 푸는데 시간이 살짝 걸리는데요! 한글자씩 해석하면서 결과물을 만들어내고 결과를 합치면 문제가 해결됩니다! 같이 한번 풀어보시죠! 1. 다트 게임 우선 한글자씩 해석하기 위해 그리고 이전의 글자 상태에 따라 처리를 다르게 하기 위해 characterStatus enum을 정의합니다. String에서 한글자씩 가져오기 위해 let char: String = String(dartResult[dartResult.index(dartResult.startIndex, offsetBy: i)]) 이런 방식을 사용합니다. 그리고 String이 Int로 형변환 가능한지 여부를 판단하여 숫자인지 글자인지 확인합니다..

[프로그래머스] [1차] 비밀지도, 가운데 글자 가져오기 with Swift

안녕하세요. 오늘은 프로그래머스 [1차] 비밀지도, 가운데 글자 가져오기 문제를 풀어보았습니다. 1. [1차] 비밀지도 비밀지도는 아직 Swift 문법이 어색해서 살짝 시간이 오래걸렸는데요! 문제 자체는 참 간단합니다! 비트연산자 &, | 를 이용해서 문제를 풀 수 있는데요. 처음에 1번지도와 2번지도를 합칠때는 OR 성질을 이용해 둘 중하나라도 1이면 1이 되도록해 지도를 겹쳐주는 역할을 합니다! 다음번에는 encoding을 하면 되는데요. 2진수를 문자열로 변환하는 과정을 한방에 하는 방법은 떠오르진 않았고 for문으로 1일때는 # 0일때는 공란이 들어가도록 코드를 구현하였습니다. 구현 방법은 &연산자를 이용해서 구현하였습니다! 😄 func solution(_ n:Int, _ arr1:[Int], _..

[프로그래머스] 최소직사각형, 나머지가 1이 되는 수 찾기, 부족한 금액 계산하기 with Swift

안녕하세요! 오늘은 최소직사각형, 나머지가 1이 되는 수 찾기, 부족한 금액 계산하기 문제를 풀어보았습니다. 오늘부터는 요즘 공부하고 있는 Swift를 이용해서 문제를 풀 예정입니다! 1. 최소직사각형 최소직사각형 문제는 직사각형 안에 카드를 모두 넣을수 있는 카드지갑의 크기를 구하는 문제입니다! 카드지갑 모양이 width가 길고 height가 짧도록 한다고 생각하고 주어진 카드의 긴 부분이 maxWidth와 비교해서 가장 길면 maxWidth를 초기화해주는 것을 반복하고 짧은 부분이 maxHeight와 비교해서 가장 길면 maxHeight를 초기화해주는 것을 반복해 width와 height를 결정하고 곱한 것을 return 해주면 됩니다. import Foundation func solution(_ s..

[프로그래머스] 예산, 두 개 뽑아서 더하기, 2016년

안녕하세요. 오늘은 프로그래머스 예산, 두 개 뽑아서 더하기, 2016년 문제를 풀어보았습니다! 문제 난이도가 낮아서 3문제를 한번에 포스팅하려고 합니다! 1. 예산 예산문제는 간단한 sort 문제입니다. vector d를 sort후 for문을 돌면서 예산에서 vector d의 값을 예산에서 깍아나가면서 result값을 늘려주면 됩니다! #include #include #include using namespace std; int solution(vector d, int budget) { int answer = 0; sort(d.begin(), d.end()); int size = d.size(); for (int i = 0; i = d[i]) { answer..