[Kotlin] map을 이용해 아스키 코드(알파벳 소문자)를 관리_실습(실패)

Jean·2023년 7월 28일
0

또 과제
[map]
소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//아스키코드는 엑셀에서 들어본건데 기억도 안난다 그냥 그런 존재만 기억남
//아스키코드 검색ㄱㄱ
//a가 97부터 z 122란다... 숫자를 반복하는건 노가다가 필요없지만 문자를 a-z까지 반복하게 하는건 노가다가 필요하다. 게다가 숫자라도 map에서 반복하는건 조금...
//알파벳은 총 26개 노가다는 좀..

//소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//a가 97 부터 z 122까지 있음 
//main 함수 열기 
//asciicode 함수 열기 
fun main () {
    var ascii = mapOf("a" to 97, "z" to 122)
    println(ascii, "a")
}

fun asciicode (input:Map<String, Int>,lower:String) : Int {
    return input.get(lower)
}

Too many arguments for public inline fun println(): Unit defined in kotlin.io
Too many arguments for public inline fun println(): Unit defined in kotlin.io
Type mismatch: inferred type is Int? but Int was expected

//아 똑같이 했는데 또 오류가 나고 지랄이여..
// 일단 null값 맞다 챙겨주고..
//toomany는 모르겠넹..아 맞다 println에 함수 안써줌 바보멍청이....

//소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//a가 97 부터 z 122까지 있음 
//main 함수 열기 
//asciicode 함수 열기 
fun main () {
    var ascii = mapOf("a" to 97, "z" to 122)
    println(asciicode(ascii, "a"))
}

fun asciicode (input:Map<String, Int>,lower:String) : Int? {
    return input.get(lower)
}

근데 그냥 ascii코드 관리하는 거 코틀린으로 작성하라고하면 어떻게 될깡?

fun main() {
    val asciiMap = createAsciiMap()
    println(asciiMap["a"]) // Print ASCII code for 'a' (97)
    println(asciiMap["z"]) // Print ASCII code for 'z' (122)
}

fun createAsciiMap(): Map<String, Int> {
    val asciiMap = mutableMapOf<String, Int>()

    // Add lowercase alphabets and their corresponding ASCII codes to the map
    for (char in 'a'..'z') {
        asciiMap[char.toString()] = char.toInt()
    }

    return asciiMap
}

알파벳도 반복이 돼? 몰랐다...그럼해볼 수 있을 거 같은데...?

fun main () {
val multipleOfThree = mutableListOf<Int>()
var l = 1..10
    for(x in l) {
    if(x % 3 == 0) {
        multipleOfThree.add(x)
    }
}

println(multipleOfThree) 
}
//출력 :[3,6,9]

list는 비어있는 리스트에 반복문을 넣을 수 있으며 .add로 추가해주면 출력할 수 있다는 것을 알겠는데
map같은 경우는 key와 value모두 필요로 하는데 어떻게 해야하는지 모르겠다.

//소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//a부터 z까지 반복하는 문자열을 입력했을 때, 순서대로 97부터 122까지 출력하기
//main함수 열기
//asciicode 함수 열기
//mutableMapOf<Char, Int>()를 갖는 비어있는 asciimap 맵 만들기
//그 맵에 Char에는 for(i in a..z), Int에는 (j in 97..122)를 넣기
//asciimap [key] = value
//main 함수에서 변수 선언 후 asciimap 맵 가져오기
// asciicode("a")를 출력하면 Int반환
fun main () {
    var result = asciimap()
    println(asciicode(result, "a"))
}

fun asciicode (input: Map<Char, Int>, alphabet: Char) : Int {
    var asciimap = mutableMapOf<Char, Int> ()
    asciimap[for(i in a..z) {i}] = for(j in 97..122) {j}
    return j
}

일단 내 생각은 이런데 ...

//소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//a부터 z까지 반복하는 문자열을 입력했을 때, 순서대로 97부터 122까지 출력하기
//main함수 열기
//asciicode 함수 열기
//mutableMapOf<Char, Int>()를 갖는 비어있는 asciimap 맵 만들기
//그 맵에 Char에는 for(char in a..z), Int에는 (j in 97..122)를 넣기
//main 함수에서 변수 선언 후 asciimap 맵 가져오기
// asciicode("a")를 출력하면 Int반환
fun main () {
    var result = asciimap()
    println(asciicode(result, "a"))
}

fun asciicode (input: Map<Char, Int>, alphabet: Char) : Int {
		var asciimap = mutableMapOf<Char, Int> ()
    	for(i in a..z) {}
  		  return 
}

어려워용 for문안에 어떻게 써야할지 모르겠다 일단 요기까지.....
1시간 넘게 잡고 있을 순 없어!

keys : Map의 key만 담는 컬렉션을 반환하는 함수
values : Map의 value만 담는 컬렉션을 반환하는 함수
fun main(){
val map1 = mutableMapOf<String,Int>("key1" to 1, "key2" to 2, "key3" to 3)
println(map1.keys)
println(map1.values) //value만 출력하는 확장함수
}
keys와 values의 큰 차이점은 key는 서로 같은 키가 존재할 수 없고, value는 같은 값이 존재할 수 있습니다. 즉, keys는 같은 키가 존재하지 않은 컬렉션을 반환해야 하기 때문에 MutableSet() 가 반환이 되고 values는 MutableCollection이 반환이 됩니다.

모르겠으니 챗지피티한테 시켜서 알파벳이랑 숫자매칭하는 맵 써달라고 한다음에 복붙

//소문자 알파벳의 아스키코드를 관리하는 맵 구성 (아스키코드 검색)
//a부터 z까지 반복하는 문자열을 입력했을 때, 순서대로 97부터 122까지 출력하기
//main함수 열기
//asciicode 함수 열기
//alphabet을 입력하면 value값 반환
// asciicode("a")를 출력하면 Int반환
fun main () {
    var result = mapOf(
    'a' to 97,
    'b' to 98,
    'c' to 99,
    'd' to 100,
    'e' to 101,
    'f' to 102,
    'g' to 103,
    'h' to 104,
    'i' to 105,
    'j' to 106,
    'k' to 107,
    'l' to 108,
    'm' to 109,
    'n' to 110,
    'o' to 111,
    'p' to 112,
    'q' to 113,
    'r' to 114,
    's' to 115,
    't' to 116,
    'u' to 117,
    'v' to 118,
    'w' to 119,
    'x' to 120,
    'y' to 121,
    'z' to 122
)
    println(asciicode(result, 'a'))
}
fun asciicode (input: Map<Char, Int>, alphabet: Char) : Int? {
    
          return input.get(alphabet)
}
profile
아 왜 안돼

0개의 댓글