문제 이해 문자열 S (영문자) 큰것부터 작은 순으로 정렬 ( 소문자 > 대문자 ) 새로운 문자열 return 접근 CharArray로 변환 Comparator 이용 정렬 (역순) toString 풀이 fun main() { val data = "Zbcdefg" println(Solution().solution(data)) } class Solution { fun solution(s: String): String { return s.toCharArray() .sortedWith(Comparator { o1, o2 -> o2 - o1 }) .joinToString("") } }
문제 이해 string 의 n번쨰 글자 기준으로 오름차순 return 접근 also 사용 일반적 정렬 부여받은 index로 정렬 풀이 class Solution { fun solution(strings: Array, n: Int): Array { //객체의 속성을 전혀 사용하지 않거나 변경하지 않고 사용하는 경우에 also return strings.also { it.sort() it.sortBy { it[n] } } } }
문제 이해 a ~ b 모든 정수의 합 return 접근 answer = 0L a b a downTo b 풀이 class Solution { fun solution(a: Int, b: Int): Long { //정답을 Int -> Long 으로 변환하면 오류 난다. 처음부터 Long으로 선언 var answer = 0L if (a < b) { for (i in a..b) { answer += i } } else { for (i in a downTo b) { answer += i } } return answer } }
문제 이해 나누어 떨어지는 값 오름차순 배열 반환 나누어 떨어지는 값없으면 1 접근 foreach -> 나누어 떨어지는 값 찾기 정렬 비었을 경우 처리 풀이 class Solution { fun solution(arr: IntArray, divisor: Int): IntArray { var answer = intArrayOf() arr.forEach { if (it % divisor == 0) { answer += it } } answer.sort() if (answer.isEmpty()) { answer += -1 } return answer } } }
API 작성 목적 : 모바일 어플리케이션, 웹 등에서 사용되는 API 제작 IDE : IntelliJ 1. Spring Initializer 로 프로젝트 생성 2. 파일 구성 Controller Api 컨트롤러 Model 데이터 필드 정보 코드 UserProfile package com.example.demo.model; public class UserProfile { private String id; private String name; private String phone; private String address; public UserProfile(String id, String name, String phone, String address) { this.id = id; this.name = nam..
문제 이해 단어 s의 가운데 글자수 반환 (홀수) 짝수의 경우 가운데 두글자 반환 (짝수) 접근 짝/홀 나눈다 중간값 반환 Kotlin의 / 연산자는 소수점 나와도 Int로 리턴 풀이 class Solution { fun solution(s: String): String = s.slice((s.length - 1) / 2 .. s.length / 2) } 다른 풀이 class Solution { fun solution(s: String): String { var answer = "" if (s.length % 2 == 0) { answer = s.get((s.length / 2) - 1).toString() + s.get(s.length / 2).toString() } else { answer = s.g..
문제 이해 자연수 n 주어진다 n을 3진법 상에서 뒤집는다 이를 다시 10진법으로 표현 -> Return 접근 3진법으로 변환 뒤집기 3진법 -> 10진법으로 변환 풀이 class Solution { fun solution(n: Int): Int { return n.toString(3).reversed().toInt(3) } }
문제 이해 2016.1.1 금요일 a월 b일 무슨요일 ? a,b 입력 -> 2016.a.b 무슨요일인지 Return [ SUN,MON,TUE,WED,THU,FRI,SAT ] 실제로 있는날을 기준으로 할 것 접근 각 월이 몇일 까지 있는지 확인할것 -> 배열로 기록 Fri 가 월요일이기 때문에 1번째 위치에 배치 (한칸식 밀리기 때문에) until 을이용해 일수 전부 더한더음 7로 나눈 나머지 - > 해당요일 나온다 풀이 class Solution { fun solution(a: Int, b: Int): String { var end2016 = listOf(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) var dayOfWeek = listOf("THU", "FRI",..
Creat, Read 하기 구현 예정 기능 간단한 글과 제목을 작성하고 그것을 한눈에 볼수있는 페이지 생성 페이지 모든 글을 보는 페이지 index 글을 작성하는 form이 있는 페이지 new 하나의 글을 보는 상세 페이지 show 생성할 액션 index new create(글을 작성하는 액션) show 1단계: Create , Read를 할 controller , action 생성 $ rails g controller posts index new create show controller 명은 Rails 규칙에 따라서 복수형 입니다. 보통 그 컨트롤러에서 다르고있는 리소스의 복수형으로 만듭니다. 자동으로 routes, controller, view가 설정됩니다. create는 글을 작성하는 액션을 위한 ..
MVC모델의 Model CRUD (Creat, Read, Update, Destroy)는 웹서비스의 가장 기본적인 기능을 말합니다. 이 CRUD를 사용하려면 일련의 과정을 거쳐야 합니다. 어떤 정보를 만들어서 저장한다음 그 저장한 정보를 읽고 수정하고 삭제 라는 과정이 필요한데 이러한 과정에서 필연적으로 필요한 게 DB 입니다. →Rails 에서 데이터베이스를 사용하고 싶다면 Active Record라는 ORM을 사용하는데, 이는 MVC 모델에서 Model에 해당합니다. ORM(Object Relational Mapping)의 약어로 DB테이블의 관계형 데이터와 객체형 데이터(Class)를 연결해 주는 것을 의미 → 실제DB에 있는 테이블을 클래스화 하고, 데이터 조작 및 SQL 명령어들을 메서드화 해서..
서버로 데이터 전달하기 $ rails g controller home form next 터미널을 실행하면 자동으로 rout, controller, view에서 알아서 파일을 생성해줍니다. home_controller의 form 과 next 액션으로 데이터 전송하기 제출 코드 작성시 실행하면 config/routes.rb 의 home/next 코드로인해 form 에서 작성된 데이터는 home controller 의 next action으로 넘어가게 됩니다. View → Controller Controller → View form 에서 보낸 데이터를 next action에서 view로 전달 class HomeController < ApplicationController def form end def next..
Rails App 의 구조에대한 설명 처음 Rails 프로젝트 구성을 보면 파일과 디렉토리가 너무 많아 무엇부터 건드려야 할지 막막할 수 있습니다. 이렇게 파일 구조가 복잡한 이유는 Rails의 특징 중 하나인 Convention over Configuration(설정보다 규칙, 줄여서 CoC) 때문입니다. 구조를 이루는 요소 각각은 저마다 알맞는 역할을 수행하기 위해 준비되었습니다. 개발을 진행할 때 요소의 역할을 파악하고 규칙에 따라 코드를 작성하면 Rails는 최고의 생산성을 보장합니다. 하지만, 모든 파일의 의미를 알아야 하는 것은 아닙니다. 여러분이 처음 Rails 프로젝트를 개발할 때 꼭 필요한 부분만 설명 하겠습니다. app/controllers: app 디렉토리의 하위 디렉토리인 contr..