본문 바로가기
728x90

Java71

Cos Pro 1급 - 샘플 문제 풀이 1차 6번 문제 지문 #6 두 학생 A와 B는 계단 게임을 하였습니다. 계단 게임의 규칙은 아래와 같습니다. 1. 계단 제일 아래에서 게임을 시작합니다. (0번째 칸) 2. 가위바위보를 합니다. 3. 이기면 계단 세 칸을 올라가고, 지면 한 칸을 내려가고, 비기면 제자리에 있습니다. 4. 계단 제일 아래에서 지면 제자리에 있습니다. 5. 2~4 과정을 열 번 반복합니다. A와 B가 계단 게임을 완료한 후에, A가 계단 위 몇 번째 칸에 있는지 파악하려고 합니다. A와 B가 낸 가위바위보 기록이 순서대로 들어있는 배열 recordA와 recordB가 매개변수로 주어질 때, 게임을 마친 후의 A의 위치를 return 하도록 solution 메소드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에.. 2022. 10. 7.
Cos Pro 1급 - 샘플 문제 풀이 1차 5번 (배열의 원소의 갯수 세기) 문제 지문 #5 1번부터 N번까지 후보에 대해서 투표를 진행했습니다. 예를 들어 투표 결과가 [1, 5, 4, 3, 2, 5, 2, 5, 5, 4]라면 순서대로 [1번, 5번, 4번, 3번, 2번, 5번, 2번, 5번, 5번, 4번] 후보에 투표했음을 나타냅니다. 이때, 가장 많은 표를 받은 후보의 번호를 구하려고 합니다. 주어진 solution 메서드는 후보의 수 N과 투표를 진행한 결과가 담긴 배열 votes가 매개변수로 주어졌을 때, 가장 많은 표를 받은 후보의 번호를 return 하는 메서드입니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요. 매개변수 설명 후보.. 2022. 10. 6.
Cos Pro 1급 - 샘플 문제 풀이 1차 3번 (Ascii 코드 활용) 문제 지문 #3 체스에서 나이트(knight)는 아래 그림과 같이 동그라미로 표시된 8개의 방향 중 한 곳으로 한 번에 이동이 가능합니다. 단, 나이트는 체스판 밖으로는 이동할 수 없습니다. 체스판의 각 칸의 위치는 다음과 같이 표기합니다. 예를 들어, A 번 줄과 1번 줄이 겹치는 부분은 'A1'이라고 합니다. 나이트의 위치 pos가 매개변수로 주어질 때, 나이트를 한 번 움직여서 이동할 수 있는 칸은 몇 개인지 return 하도록 solution 메서드를 완성해주세요. 매개변수 설명 나이트의 위치 pos가 solution 메서드의 매개변수로 주어집니다. pos는 A부터 H까지의 대문자 알파벳 하나와 1 이상 8 이하의 정수 하나로 이루어진 두 글자 문자열입니다. 잘못된 위치가 주어지는 경우는 없습니다.. 2022. 10. 5.
Cos Pro 1급 - 샘플 문제 풀이 1차 2번 ( inRange() 함수 만들기) 문제 지문 #2 다음과 같이 n x n 크기의 격자에 1부터 n x n까지의 수가 하나씩 있습니다. 이때 수가 다음과 같은 순서로 배치되어있다면 이것을 n-소용돌이 수라고 부릅니다. 소용돌이 수에서 1행 1열부터 n 행 n 열까지 대각선 상에 존재하는 수들의 합을 구해야 합니다. 위의 예에서 대각선 상에 존재하는 수의 합은 15입니다. 격자의 크기 n이 주어질 때 n-소용돌이 수의 대각선 상에 존재하는 수들의 합을 return 하도록 solution 메서드를 완성해주세요. 매개변수 설명 격자의 크기 n이 solution 메서드의 매개변수로 주어집니다. n은 1 이상 100 이하의 자연수입니다. return 값 설명 n-소용돌이 수의 대각선 상에 존재하는 수들의 합을 return 해주세요. 예시 n ret.. 2022. 10. 3.
Cos Pro 1급 - 샘플 문제 풀이 1차 1번 (자연수의 각 자리별 접근) 문제 지문 #1 어느 누군가가 타임머신을 타고 과거로 가서 숫자 0이 없는 수 체계를 전파했습니다. 역사가 바뀌어 이제 사람들의 의식 속엔 0이란 숫자가 사라졌습니다. 따라서, 현재의 수 체계는 1, 2, 3, ..., 8, 9, 11, 12, ...와 같이 0이 없게 바뀌었습니다. 0을 포함하지 않은 자연수 num이 매개변수로 주어질 때, 이 수에 1을 더한 수를 return 하도록 solution 메소드를 완성해주세요. 매개변수 설명 자연수 num이 solution 메소드의 매개변수로 주어집니다. num은 1 이상 999,999,999,999,999,999 이하의 0을 포함하지 않는 자연수입니다. return 값 설명 자연수 num에 1을 더한 수를 return 해주세요. 예시 num return 9.. 2022. 9. 29.
DI(Dependency Injection) 의존성 주입이란? DI(Dependency Injection) 아래 예제는 url을 base64로 encoding 하거나 url로 encoding 하는 예제입니다.(생성자를 이용) 여기에서 Encoder는 UrlEncoder와 Base64Encoder에 의존하고 있습니다. 그리고 다양한 Encoding에 의존 받을 수 있게 구현하기 위해 IEncoder 인터페이스로 추상화를 했습니다. 그렇게 정리된 것이 아래 코드입니다. 하지만, 이 경우에는 Encoder 내부에서 의존관계를 가지고 있습니다. 공통되는 부분을 잘 추상화하여 정리하였지만, 내부적인 의존관계로 인해 Base64 또는 Url Encoding로 변경을 위해서는 소스의 본질적인 부분을 수정하게 됩니다. package com.company.ioc; import ja.. 2022. 8. 19.
[JAVA] heap, stack, static 메모리 구조 Java의 각 객체는 각각 다른 메모리 영역에 로드가 됩니다. 보통은 신경 쓸 일이 적으나, 간혹 이 부분을 고려하지 않아서 오류가 발생하므로 기본적인 개념은 정리가 필요합니다. 한번 정리 안 하면 두고두고 헷갈리게 됩니다. (제가 그래서 지금 이 글을 쓰면서 개념을 정리하는 중입니다.) Java의 메모리 영역은 다음과 같이 3가지입니다. Stack, Heap, Method(Static) 하나씩 정리해 보겠습니다. Stack 영역 Stack 영역은 기본 자료형(int, double, byte, long, boolean 등)에 해당되는 지역변수, 매개변수 등이 할당되는 영역입니다. 즉 임시로 사용하는 변수나 정보를 저장하는 영역입니다. 따라서 method가 호출될 때 생성되고, method 실행이 종료되면.. 2022. 8. 18.
object-mapper 실습 object mapper 란? 클라이언트와 서버간에 Text인 JSON을 Parsing하여 Object로 받거나, Object를 Text인 JSON으로 변경하여주는 기능입니다. 실습 여기서는 object-mapper의 동작방식을 알기 위해 명시적으로 object-mapper를 사용하는 방법을 실습하겠습니다. 우선 object-mapper 라는 이름으로 Java 프로젝트를 생성하고, spring web에 dependencies를 설정합니다. 이번에는 main이 아니라 test에 간단한 코드를 심어서 실습을 합니다. Test에 있는 ObjectMapperApplicationTests에 아래와 같이 추가 코드를 작성합니다. package com.example.objectmapper; import org.jun.. 2022. 8. 17.
728x90