유니티를 사용하다보면 Target API Level을 바꿔야 할때가 있다.

그런데 유니티가 가끔씩 설정에서 바뀐 SDK로 업데이트 안받아줄때가 있는데 그럴때는 

안드로이드 스튜디오를 사용해서 받아서 수동으로 넣어주거나, 기타 방법으로 조달해서 넣어주는 방법이 있다.

 

그러나 간단하게 해당 API Level로 올리는 방법이 있다

 

1. 아래 내용을 메모장에 복사해서 붙혀 넣는다

 

set UNITY_VERSION=   // 사용하는 Unity Version
 
c:
set JAVA_HOME=c:\Program Files\Unity\Hub\Editor\%UNITY_VERSION%\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\
set ANDROID_HOME=c:\Program Files\Unity\Hub\Editor\%UNITY_VERSION%\Editor\Data\PlaybackEngines\AndroidPlayer\
cd %ANDROID_HOME%SDK\tools\bin\
echo.> %USERPROFILE%\.android\repositories.cfg

 

// 따로 경로를 변경한적이 없으면 수정은 안해도 됩니다

// 경로를 변경했다면 유니티 설치 경로를 바꿔주세요
 
cmd /C sdkmanager --update
cmd /C sdkmanager "platform-tools" "platforms;android-29"
cmd /C sdkmanager "platform-tools" "platforms;android-30"
cmd /C sdkmanager "platform-tools" "platforms;android-31"
cmd /C sdkmanager "platform-tools" "platforms;android-32"
cmd /C sdkmanager "platform-tools" "platforms;android-33"
cmd /C sdkmanager "platform-tools" "platforms;android-34"

 

// 올리고자 하는 SDK 버전을 숫자만 바꿔서 넣어주자

 

2. 메모장의 확장자명을 cmd로 바꿔주도록 하자

ex) sdkUpdater.cmd

 

3. 실행하면 프롬프트창이 뜨고 자동으로 sdk 업데이트가 실행된다
 

https://developers.google.com/admob/unity/gradle?hl=ko#unity_20221_and_earlier

 

Android용 Gradle 업그레이드  |  Unity  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Android용 Gradle 업그레이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google 모바일 광고 Android SDK 22

developers.google.com

 

필자가 사용한 개발 환경 : Unity 2021.3.8f

과정 :

1. Google Admob 8.7.0 플러그인 임포트후 빌드시 Gradle Fail 발생

2. 이전 버전인 8.5.3은 문제없이 빌드 가능

3. 구글 애드몹 문서상 8.5.3과 8.7.0사이 버전에서 Gradle 커트라인 상향 발생으로 추측

4. 구글 애드몹 가이드에 따라 Gradle 버전업 및 Gradle plugin 버전업

5. 빌드 문제 해결

 

* 본 게시글은 개인보관용 게시글임을 알림

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

 

2979번: 트럭 주차

첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장

www.acmicpc.net

 

이번 문제는 문제 자체를 이해할 필요가 있다. 어려운 문제는 아니기는 하나 약간 헷갈릴 부분이 있기 때문이다.

문제에서 주차장에 도착한 시간과 떠나는 시간이 주어지는데, 도착한시간은 요금을 부과하고 떠나는 시간은

요금을 부과하지 않아야 문제가 풀리기 때문이다.

 

예를 들어 

예제문제의 '1 6' 이라는 입력값을 받게되면 1분 ~ 5분까지는 요금을 부과하고 떠나는시각인 6분에는 부과하지 않는다는 방식이다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
 
using namespace std;
 
int a,b,c;
int parking[101];
int answer;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    cin >> a >> b >> c;            // a, b, c에 각각의 요금을 입력받는다
    
    for(int i = 0; i < 3; i++)
    {
        int n, m;                // n은 차가 주차장에 들어온시간 / m은 나간시간
        cin >> n >> m;
        for(int j = n; j < m; j++)
        {
            parking[j]++;            // 배열에 주차된 차의 대수를 저장한다
        }
    }
    
    for(int i = 1; i <= 100; i++)            // 해당 시각(분)에 주차장에 있는 차의 대수를 계산하여 요금을 계산한다
    {
        if(parking[i] == 1)
            answer += a;
        else if(parking[i] == 2)
            answer += (b * 2);
        else if(parking[i] == 3)
            answer += (c * 3);
    }
    cout << answer;            
    return 0;
}
cs

'문제풀이' 카테고리의 다른 글

<C/C++> 백준 10808 : 알파벳 개수  (0) 2022.08.10
<C/C++>백준 2309 : 일곱 난쟁이  (0) 2022.08.09

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

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

이번 문제는 문자열의 알파벳 갯수를 카운트 하여 출력하는 문제이다.

ASCII 코드라는 개념을 알고있다면 쉽게 풀 수 있는 문제이며, 배열을 사용하여 카운트를 올려줌으로써

문제를 쉽게 해결할 수 있다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <bits/stdc++.h>
 
using namespace std;
 
string s;
int arr[26];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    // 문자열 입력 받음
    cin >> s;
    
    // 문자 하나의 위치에 카운트
    for (int i = 0; i < s.length(); i++)
    {
        arr[s[i] - 'a']++;      // 'a' - 'a' = 0 / 'z' - 'a' = 25
    }
    
    // 출력
    for (int n : arr)
    {
        cout << n << " ";
    }
    cout << '\n';
    return 0;
}
cs

'문제풀이' 카테고리의 다른 글

<C/C++> 백준 2979 : 트럭주차  (1) 2022.08.26
<C/C++>백준 2309 : 일곱 난쟁이  (0) 2022.08.09

이번에 블로그에 글을 쓰게 되면서 생긴 한 가지 고민이 있었다. 그것은 바로 "코드를 어떻게 가독성 좋게 블로깅 하는 것이냐"는 것이다.

다른 블로그들을 보면 이런 식으로 가독성 좋게 올려놓은 코드들을 볼 수 있다.

 

출처 : https://eine.tistory.com/ (아인트라세의 SW블로그)

이런 식으로 말이다. 처음에는 티스토리나 블로그 자체에서 지원되는줄 알았으나 그런게 아니었다.

별도의 소프트웨어가 필요한 것도 아니었고 어떤 사이트에서 지원하고 있었다.

 

그것은 바로 Color Scripter 라는 사이트였다.

 

https://colorscripter.com/

 

이 사이트는 블로그나 커뮤니티 등에 올리기 좋게 HTML 형식으로 편집해주는데 사용법도 간단하고 꽤나 쓸모가 있었다.

앞으로 이 사이트를 자주 방문하게 될 것 같다.

백준 2309 일곱 난쟁이

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

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

 이 문제는 백준의 문제 중에서 쉬운 난이도에 들어간다. 이번에 인프런 큰돌 강의를 다시 보게되면서 다시 알고리즘 문제 연습을 시작하게 되었는데

그 중에 제일 첫 문제로 나온것이 일곱 난쟁이이다. 문제 자체는 크게 어려운 부분이 없으나 아직까지 효율적인 코드를 작성하는 부분에 있어서 미흡하므로

반복문이 많이 들어간 것같다

 

코드는 대략 이러하다

 

전제조건 

일곱 난쟁이의 키의 총합이 100이 나와야 하고 7명을 뽑아서 출력해야 한다

단, 출력순서는 오름차순으로 출력한다

여러 정답중에 하나만 나오면 되므로 위 두 가지 조건만 성립하면 정답으로 처리된다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <bits/stdc++.h>
 
using namespace std;
 
vector<int> v;
vector<int> ans;
int sum, n, m;
 
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    // 9명의 난쟁이를 입력 받는 부분
    for(int i = 0; i < 9; i++)
    {
        int a;
        cin >> a;
        v.push_back(a);
    }
 
    // 9명의 난쟁이들의 키의 총합을 더하는 부분
    sum = accumulate(v.begin(), v.end(), 0, plus<int>());
 
    // 조합을 통해서 문제에서 요구하는 키 총합 100 에 맞는 값을 찾는 부분
    for(int i = 0; i < 9; i++)
    {
        for(int j = i; j < 9; j++)
        {
            // vector의 두 요소를 더한 값을 빼서 100이 나오면 제외 대상이다
            if(sum - (v[i] + v[j]) == 100)
            {
                n = i;
                m = j;
            }
            if(m != 0)
                break;
        }
        if(n != 0)
            break;
    }
    
    // 위에서 뽑아낸 제외대상을 뺀 나머지를 정답 배열 안에 넣어준다
    for(int i = 0; i < 9; i++)
    {
        if(i == n || i == m)
            continue;
        ans.push_back(v[i]);
    }
    // 오름차순으로 정렬을 한다
    sort(ans.begin(), ans.end());
    // 출력
    for(int a : ans)
    {
        cout << a << '\n';
    }
    return 0;
}
cs

 

큰돌님은 이 문제를 do while을 사용하여 permutation을 사용하여 간결하게 짜셨다. 아직 이 정도 까지의 깔끔한 코드까지는 멀어보인다.

'문제풀이' 카테고리의 다른 글

<C/C++> 백준 2979 : 트럭주차  (1) 2022.08.26
<C/C++> 백준 10808 : 알파벳 개수  (0) 2022.08.10

+ Recent posts