Kotlin/Kotlin 알고리즘

백준 25703번 포인터 공부 Kotlin 구현해보기

kimc 2022. 10. 3. 19:42

```

백준 25703번 포인터 공부 Kotlin 구현해보기

```

Kimc Kotlin Study

이번 글을 통해 배워갈 내용

  1. 백준 25703번 포인터 공부 풀이

https://www.acmicpc.net/problem/25703

 

25703번: 포인터 공부

용모는 오늘 객체지향프로그래밍1 시간에 포인터에 대해 배웠다. 포인터란, 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 의미한다. C/C++에서 포인터는 (

www.acmicpc.net

 

포인터란 변수의 메모리 공간 주소를 가리키는 변수를 의미하며

*은 변수가 포인터임을 의미하고

&은 변수의 메모리 주소값을 의미합니다.

 

백준 25703번 포인터 공부는

 

난이도 브론즈 등급의 문제로서

주어지는 숫자만큼 아래와 같은 형식으로

포인터 연결을 하는데 필요한

식을 출력해주면 되는 문제입니다

 

int a;
int *ptr = &a;
int **ptr2 = &ptr;
int ***ptr3 = &ptr2;
int ****ptr4 = &ptr3;

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


첫 줄에는

int a;를 출력하고

a를 두 번째 줄에 &a 로 주소 값으로 활용하고

두 번째 줄에서 포인터를 건 ptr을 다시 세 번째 줄에서 활용하는 방법으로

for문을 돌려서 해결했습니다.

 

fun main(args: Array<String>) {
    // 입력
    val n = (readln()).toInt()
    // 출력
    print(findPtrDecl(n))
}

fun findPtrDecl(n: Int): String {
    var sb = StringBuilder()
    sb.append("int a;\n")
    var prevVal = "a"
    for (i in 1 until (n + 1)) {
        val nextVal = if (i > 1) "ptr${i}" else "ptr"
        sb.append("int ${"*".repeat(i)}${nextVal} = &$prevVal;\n")
        prevVal = nextVal
    }
    sb.setLength(sb.length - 1)
    return sb.toString()
}

// https://codemasterkimc.tistory.com/

 

 

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90