본문 바로가기

문자열16

[프로그래머스] (Swift) JadenCase 문자열 만들기 - Lv.2 📌 문제 코딩테스트 연습 - JadenCase 문자열 만들기 | 프로그래머스 스쿨 📌 풀이 풀이의 핵심은 3가지이다. 문자열의 인덱스에 대한 반복문 대문자로 만들어야 할 조건에 대한 flag 문자열 인덱스 값에 대한 조건 3가지 조건 1: 공백일 때 → 공백을 결괏값에 추가 조건 2: flag가 1보다 클 때 → 대문자로 변환하여 결괏값에 추가 조건 3: flag가 1보다 작을 때 → 소문자로 변환하여 결괏값에 추가 📌 코드 Swift에서 문자열에 대한 인덱스 접근이 까다로워 애를 먹었다. 인덱스 하나 접근하는데 저리 복잡한 메서드가 필요하다니... func solution(_ s:String) -> String { // 필요한 변수 초기화 var flag = 1 var result = "" // 문자열.. 2023. 4. 25.
[Swift] 문자열은 참조 타입이 아닌 값 타입이다? 📌 문자열의 타입은 값 타입(Value Type) Xcode에서 String의 Definition 검색 Xcode에서 String을 입력하고 커맨드(command) 키를 누른 채로 String을 눌러 보자. Swift에서 문자열은 구조체이다. 따라서 문자열은 값 타입이다. String이 구조체(struct)로 구현되어 있는 것을 알 수 있다. 아직 블로그에서 다루지는 않았지만 Swift에서 구조체는 값 타입이다. 따라서 String은 값 타입(value type)이다. 값 타입의 특징 - 복사본의 전달/할당 값 타입의 특성 상, 문자열 값을 함수/메서드에 전달할 때나 상수/변수에 할당할 때 그 값은 복사되어 복사된 값이 전달/할당 된다. 전달/할당 된 복사본의 문자열은 원본의 문자열을 수정한다고 해서 복.. 2023. 4. 24.
[프로그래머스] (Swift) 문자열 내림차순으로 배치하기 - Lv.1 📌 문제 코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 스쿨 📌 풀이 (1) 아스키 값으로 변환하기 아스키 값으로 변환하고 내림차순으로 정렬한 다음 다시 문자열로 변환하는 방법이 있다. 문자열을 한 글자씩 아스키 값(8비트)으로 변환하는 메서드 asciiValue()를 사용한다. 내림차순으로 정렬한다. UnicodeScalar()로 아스키 값을 다시 문자열로 변환하여 한 글자씩 연결한다. (2) sorted() 메서드 이용하기 정말 허무하게도 sorted()와 클로저를 활용하면 한 줄로 표현이 가능하다. 문자열도 정렬이 바로 가능한 줄 몰랐다... 이게 돼? 단, 메서드를 사용하면 Array 형태인데, 이를 다시 형 변환하여 String으로 바꿔주기만 하면 된다. sorted()로 내림.. 2023. 4. 20.
[Swift] 문자열 리터럴(String Literals) 프로그래밍 언어의 기본 자료형 중 하나인 문자열에 대해 알아 보자. Swift는 문자열과 문자를 별도로 구분하는 언어이다. (아래의 여러 줄 문자열은 루이스 캐럴의 소설 『이상한 나라의 앨리스』(1865) 발췌하여 가져 왔습니다.) 📌 문자열 리터럴(String Literals) 문자열의 리터럴은 쌍따옴표 하나(")를 양끝에 감싸서 데이터를 표현한다. // 타입 추론 형식으로 문자열을 작성할 때 let aString = "This is a string." // 타입 명시로 문자열을 작성할 때 let anotherString: String = "I just wrote my second string." 📌 여러 줄 문자열 리터럴(Multiline String Literals) (1) 쌍따옴표 3개(""")를.. 2023. 4. 8.
[백준] (Swift) 3613번: Java vs C++ 📌 문제 3613번: Java vs C++ 📌 풀이 개요 이 문제의 핵심은 Java 형식(Camel case)과 Cpp 형식(Snake case)의 특징을 확인하여 이를 서로 변환하는 것이다. 각 형식의 예외 조건을 찾아 해당 형식에 부합한지를 판별해야 한다. 변수명의 이름이 바뀔 때마다 Java 형식은 대문자가 되고, Cpp 형식은 밑줄('_')이 따라 붙는다. 여기에 맞지 않는 것은 예외 처리로 판별한다. 📌 풀이 1. Java 형식이 아닐 때 첫글자가 대문자일 경우 밑줄이 하나라도 있을 경우 2. Cpp 형식이 아닐 때 양끝에 밑줄이 있을 경우 밑줄이 2개 이상 붙어 있을 경우 대문자가 하나라도 있을 경우 이제 위의 형식을 판별했다면 서로 다른 형식으로 변환하면 된다. 3. Cpp에서 Java로 변.. 2023. 3. 21.
[백준] (Swift) 10769번: 행복한지 슬픈지 📌 문제 10769번: 행복한지 슬픈지 📌 풀이 주어진 입력을 배열로 변환한다. 배열에서 단어를 검사할 때 인덱스의 범위를 초과하면 안되므로, 1번 이전에 문자열에서 임의의 문자 2개를 추가한다. 배열의 인덱스를 접근하면서 행복한 이모티콘과 슬픈 이모티콘의 개수를 계산한다. 행복한 이모티콘과 슬픈 이모티콘의 개수를 비교하여 출력의 조건문에 따라 화면 출력한다. 📌 코드 // 행복한 얼굴과 슬픈 얼굴에 대한 개수를 변수로 할당 var happyStringCount = 0 var sadStringCount = 0 // 주어진 입력을 input에 문자열로 할당 var input = readLine()! // 인덱스 초과를 막기 위해 임의의 두 문자를 맨뒤에 추가 input += ".." // 문자열을 배열로 .. 2023. 3. 18.
반응형