반응형

출처 : 프로그래머스

 

코딩테스트 연습 - 조이스틱

조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다

programmers.co.kr

문제 설명

조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다.
ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA

조이스틱을 각 방향으로 움직이면 아래와 같습니다.

▲ - 다음 알파벳
▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로)
◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서)
▶ - 커서를 오른쪽으로 이동 (마지막 위치에서 오른쪽으로 이동하면 첫 번째 문자에 커서)

예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다.

- 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다.
- 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다.
- 마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z를 완성합니다.
따라서 11번 이동시켜 "JAZ"를 만들 수 있고, 이때가 최소 이동입니다.

만들고자 하는 이름 name이 매개변수로 주어질 때, 이름에 대해 조이스틱 조작 횟수의 최솟값을 return 하도록 solution 함수를 만드세요.

제한 사항
  • name은 알파벳 대문자로만 이루어져 있습니다.
  • name의 길이는 1 이상 20 이하입니다.
입출력 예namereturn
"JEROEN" 56
"JAN" 23

출처

※ 공지 - 2019년 2월 28일 테스트케이스가 추가되었습니다.
※ 공지 - 2022년 1월 14일 지문 수정 및 테스트케이스가 추가되었습니다. 이로 인해 이전에 통과하던 코드가 더 이상 통과하지 않을 수 있습니다.

 

문제를 도저히 이해할 수가 없다. 

좌우 이동 .. ㅠㅠㅠ

블로그에서 AAAA이런 예는 어떻게 알아내는지 

alphas = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
reverse_alphas = alphas[::-1]

def findPath(val):
    return min(alphas.find(val), reverse_alphas.find(val) + 1)

def solution(name):    
    answer = 0
    min_step = len(name) - 1
    # 뒤로 부터 이동
    
    while name[min_step] == 'A' and min_step > 0:
        min_step -= 1
    if (min_step < 0):
        return answer

    for idx, val in enumerate(name):
        answer += findPath(val)

        # 'A'가연속으로 나오면 답이달라진다.'
        next_step = idx + 1
        while next_step < len(name) and name[next_step] == 'A' :
            next_step += 1
        # 내 다음이 A라면 무시한다.
        # ABAAAAAAAAABB 일 경우에는 앞으로 갔다가 다시 돌아왔다가 끝 부터 들어준다. 
        min_step = min(min_step, idx + idx + len(name)  - next_step )
        # BBBBAAAAAAAB 와 같은 케이스 
        min_step = min(min_step, (len(name)  - next_step) * 2 + idx)
    answer += min_step
    return answer

name = "BBBAAAB"
print(solution(name))

 어렵당..

참고 블로그:

https://excited-hyun.tistory.com/207

 

[프로그래머스 - Java] 조이스틱

https://programmers.co.kr/learn/courses/30/lessons/42860# 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA,..

excited-hyun.tistory.com

 

https://velog.io/@jeeseob5761/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A1%B0%EC%9D%B4%EC%8A%A4%ED%8B%B1

 

[프로그래머스] 조이스틱 자바

조이스틱 문제는 프로그래머스 코딩테스트 연습 Greedy에 있습니다.

velog.io

 

반응형
반응형

출처 : 프로그래머스

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.

예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.

0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.

제한 사항

  • numbers의 길이는 1 이상 100,000 이하입니다.
  • numbers의 원소는 0 이상 1,000 이하입니다.
  • 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.

입출력 예

numbersreturn

[6, 10, 2] "6210"
[3, 30, 34, 5, 9] "9534330"

※ 공지 - 2021년 10월 20일 테스트케이스가 추가되었습니다.

최대 4자리 수 까지여서 x * 3으로 하였다. 

test case 11은 모두 0일 때 0으로 나와야 한다. 

def solution(numbers):
    if any(numbers) == 0:
        return '0'
    numbers_s =  list(map(str, numbers))
    numbers_s.sort(key = (lambda x : x * 3) ,reverse = True)
    answer = "".join(numbers_s)
    return answer


numbers = [0, 0, 0] 
solution(numbers)
반응형

'문제 > 프로그래머스' 카테고리의 다른 글

순위  (0) 2022.03.29
정수 삼각형  (0) 2022.03.12
[1차] 캐시  (0) 2022.02.28
이진 변환 반복하기  (0) 2022.02.28
교점에 별 만들기  (0) 2022.02.19
반응형

출처 : 프로그래머스

 

코딩테스트 연습 - [1차] 캐시

3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Ro

programmers.co.kr

문제 설명

캐시

지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다.
이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다.
어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다.

어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오.

입력 형식

  • 캐시 크기(cacheSize)와 도시이름 배열(cities)을 입력받는다.
  • cacheSize는 정수이며, 범위는 0 ≦ cacheSize ≦ 30 이다.
  • cities는 도시 이름으로 이뤄진 문자열 배열로, 최대 도시 수는 100,000개이다.
  • 각 도시 이름은 공백, 숫자, 특수문자 등이 없는 영문자로 구성되며, 대소문자 구분을 하지 않는다. 도시 이름은 최대 20자로 이루어져 있다.

출력 형식

  • 입력된 도시이름 배열을 순서대로 처리할 때, "총 실행시간"을 출력한다.

조건

  • 캐시 교체 알고리즘은 LRU(Least Recently Used)를 사용한다.
  • cache hit일 경우 실행시간은 1이다.
  • cache miss일 경우 실행시간은 5이다.

입출력 예제

캐시크기(cacheSize)도시이름(cities)실행시간
3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50
3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21
2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Rome", "Paris", "Jeju", "NewYork", "Rome"] 60
5 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Rome", "Paris", "Jeju", "NewYork", "Rome"] 52
2 ["Jeju", "Pangyo", "NewYork", "newyork"] 16
0 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 25

해설 보러가기

[“Jeju”, “Pangyo”, “Seoul”, “NewYork”, “LA”, “Jeju”, “Pangyo”, “Seoul”, “NewYork”, “LA”]

“Jeju” 5

“Jeju”, “Pangyo” 5
“Jeju”, “Pangyo”, “Seoul” 5
“Pangyo”, “Seoul”, “NewYork” 5
“Seoul”, “NewYork”, “LA” 5

주의할 점 : 각 도시 이름은 공백, 숫자, 특수문자 등이 없는 영문자로 구성되며, 대소문자 구분을 하지 않는다.

75 점을 맞은 이유는 최신조회한 것은 +1 하고 최신 자리에 업데이트 해줘야 한다.

def solution(cacheSize, cities):
    answer = 0
    stack = []
    for i in cities:
        i = i.lower()
        if i not in stack: # stack에 있지 않을 경우 
            answer += 5
            if len(stack) < cacheSize:
                stack.append(i)         
            else:
                stack.append(i)              
                stack.pop(0)
        else:
           stack.pop(stack.index(i))
           stack.append(i)
           answer += 1 
    return answer

cacheSize = 3
cities = ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"]
solution(cacheSize, cities)

 

반응형

'문제 > 프로그래머스' 카테고리의 다른 글

정수 삼각형  (0) 2022.03.12
가장 큰 수  (0) 2022.03.08
이진 변환 반복하기  (0) 2022.02.28
교점에 별 만들기  (0) 2022.02.19
동명 동물 수 찾기  (0) 2022.02.16
반응형

출처 : 프로그래머스

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

문제 설명

0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.

  1. x의 모든 0을 제거합니다.
  2. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.

예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다.

0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.


제한사항
  • s의 길이는 1 이상 150,000 이하입니다.
  • s에는 '1'이 최소 하나 이상 포함되어 있습니다.

입출력 예sresult
"110010101001" [3,8]
"01110" [3,3]
"1111111" [4,1]

입출력 예 설명

입출력 예 #1

  • "110010101001"이 "1"이 될 때까지 이진 변환을 가하는 과정은 다음과 같습니다.
회차이진 변환 이전제거할 0의 개수0 제거 후 길이이진 변환 결과
1 "110010101001" 6 6 "110"
2 "110" 1 2 "10"
3 "10" 1 1 "1"
  • 3번의 이진 변환을 하는 동안 8개의 0을 제거했으므로, [3,8]을 return 해야 합니다.

입출력 예 #2

  • "01110"이 "1"이 될 때까지 이진 변환을 가하는 과정은 다음과 같습니다.
회차이진 변환 이전제거할 0의 개수0 제거 후 길이이진 변환 결과
1 "01110" 2 3 "11"
2 "11" 0 2 "10"
3 "10" 1 1 "1"
  • 3번의 이진 변환을 하는 동안 3개의 0을 제거했으므로, [3,3]을 return 해야 합니다.

입출력 예 #3

  • "1111111"이 "1"이 될 때까지 이진 변환을 가하는 과정은 다음과 같습니다.
회차이진 변환 이전제거할 0의 개수0 제거 후 길이이진 변환 결과
1 "1111111" 0 7 "111"
2 "111" 0 3 "11"
3 "11" 0 2 "10"
4 "10" 1 1 "1"
  • 4번의 이진 변환을 하는 동안 1개의 0을 제거했으므로, [4,1]을 return 해야 합니다.
def solution(s):
    answer = []
    zerocount,cnt = 0,0
    while s != '1':
        zerocount += s.count('0')
        s = bin(len((lambda x: x.replace('0',''))(s))).replace('0b','')
        cnt += 1
    answer.append(cnt)
    answer.append(zerocount)
    return answer

s = "1111111"
solution(s)
반응형

'문제 > 프로그래머스' 카테고리의 다른 글

가장 큰 수  (0) 2022.03.08
[1차] 캐시  (0) 2022.02.28
교점에 별 만들기  (0) 2022.02.19
동명 동물 수 찾기  (0) 2022.02.16
최솟값 구하기  (0) 2022.02.16
반응형

인터프리터 언어(Interpreter Language) :

컴파일 할 필요 없다.

한줄한줄 읽어가며 명령을 바로 처리하는 프로그램(언어)

번역과 실행이 동시에 이루어진다.

인터프리터(interpreter, 문화어: 해석기)는 프로그래밍 언어 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다. 인터프리터는 다음의 과정 가운데 적어도 한 가지 기능을 가진 프로그램이다.

  1. 소스 코드를 직접 실행한다.
  2. 소스 코드를 효율적인 다른 중간 코드로 변환하고, 변환한 것을 바로 실행한다.
  3. 인터프리터 시스템의 일부인 컴파일러가 만든, 미리 컴파일된 저장 코드의 실행을 호출한다.

python, javascript, ruby 등

고급 프로그램

 

컴파일 언어(Compiled Language):

컴파일 언어(compiled language)는 구현체들이 일반적으로 컴파일러(소스 코드로부터 기계어를 생성해내는 변환기)이면서 인터프리터(런타임 전 변환 과정을 거치지 않는, 소스 코드의 단계별 실행기)가 아닌 프로그래밍 언어이다.

예시: C, C++, C# 등

 

인터프리터 언어(Interpreter Language)  컴파일 언어(Compiled Language)
한 줄씩 읽어 들이면서 바로 실행 소스코드를 한꺼번에 다른 목적 코드로 번역한 후, 한 번에 실행하는 프로그램(언어) -> 컴파일이 필요하다
한 줄 씩 명령을 내리다 보니, 그 명령 자체의 속도는 컴파일러 언어에 비해 느림 인터프리터를 이용해 실행시키는 것보다 훨씬 빠르게 동작 하나
컴파일 과정에서 시간이 오래 걸리고 메모리를 많이 차지함
고급 프로그램 즉시 실행할 수 있음 실행파일을 실시함

 

 

출처 :

https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0

 

인터프리터 - 위키백과, 우리 모두의 백과사전

인터프리터(interpreter, 문화어: 해석기)는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다. 인터프리터

ko.wikipedia.org

https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC_%EC%96%B8%EC%96%B4

 

컴파일 언어 - 위키백과, 우리 모두의 백과사전

컴파일 언어 위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

반응형

'개념 정리' 카테고리의 다른 글

연쇄법칙 chain rule  (0) 2022.02.21
메타인지  (0) 2022.01.20
자연어 처리  (0) 2022.01.20
음성 합성  (0) 2022.01.20
음성인식  (0) 2022.01.20
반응형

연쇄법칙 

chain rule

합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다. 

 

출처 :

밑바닥부터 시작하는 딥러닝

 

반응형

'개념 정리' 카테고리의 다른 글

인터프리터 언어(Interpreter Language) vs 컴파일 언어(Compiled Language)  (0) 2022.02.26
메타인지  (0) 2022.01.20
자연어 처리  (0) 2022.01.20
음성 합성  (0) 2022.01.20
음성인식  (0) 2022.01.20
반응형

출처 : 프로그래머스

 

코딩테스트 연습 - 교점에 별 만들기

[[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, -

programmers.co.kr

문제 설명

Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다.

예를 들어, 다음과 같은 직선 5개를

  • 2x - y + 4 = 0
  • -2x - y + 4 = 0
  • -y + 1 = 0
  • 5x - 8y - 12 = 0
  • 5x + 8y + 12 = 0

좌표 평면 위에 그리면 아래 그림과 같습니다.

이때, 모든 교점의 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4), (1.5, 1.0), (2.1, -0.19), (0, -1.5), (-2.1, -0.19), (-1.5, 1.0)입니다. 이 중 정수로만 표현되는 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4)입니다.

만약 정수로 표현되는 교점에 별을 그리면 다음과 같습니다.

위의 그림을 문자열로 나타낼 때, 별이 그려진 부분은 *, 빈 공간(격자선이 교차하는 지점)은 .으로 표현하면 다음과 같습니다.

"..........."  
".....*....."  
"..........."  
"..........."  
".*.......*."  
"..........."  
"..........."  
"..........."  
"..........."  
".*.......*."  
"..........."  

이때 격자판은 무한히 넓으니 모든 별을 포함하는 최소한의 크기만 나타내면 됩니다.

따라서 정답은

"....*...."  
"........."  
"........."  
"*.......*"  
"........."  
"........."  
"........."  
"........."  
"*.......*"  

입니다.

직선 A, B, C에 대한 정보가 담긴 배열 line이 매개변수로 주어집니다. 이때 모든 별을 포함하는 최소 사각형을 return 하도록 solution 함수를 완성해주세요.


제한사항
  • line의 세로(행) 길이는 2 이상 1,000 이하인 자연수입니다.
    • line의 가로(열) 길이는 3입니다.
    • line의 각 원소는 [A, B, C] 형태입니다.
    • A, B, C는 -100,000 이상 100,000 이하인 정수입니다.
    • 무수히 많은 교점이 생기는 직선 쌍은 주어지지 않습니다.
    • A = 0이면서 B = 0인 경우는 주어지지 않습니다.
  • 정답은 1,000 * 1,000 크기 이내에서 표현됩니다.
  • 별이 한 개 이상 그려지는 입력만 주어집니다.

입출력 예lineresult
[[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"]
[[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"]
[[1, -1, 0], [2, -1, 0]] ["*"]
[[1, -1, 0], [2, -1, 0], [4, -1, 0]] ["*"]

입출력 예 설명

입출력 예 #1

문제 예시와 같습니다.

입출력 예 #2

직선 y = 1, x = 1, x = -1는 다음과 같습니다.

(-1, 1), (1, 1) 에서 교점이 발생합니다.

따라서 정답은

"*.*"  

입니다.

입출력 예 #3

직선 y = x, y = 2x는 다음과 같습니다.

(0, 0) 에서 교점이 발생합니다.

따라서 정답은

"*"  

입니다.

입출력 예 #4

직선 y = x, y = 2x, y = 4x는 다음과 같습니다.

(0, 0) 에서 교점이 발생합니다.

따라서 정답은

"*"

입니다.


참고 사항

Ax + By + E = 0
Cx + Dy + F = 0
두 직선의 교점이 유일하게 존재할 경우, 그 교점은 다음과 같습니다.

또, AD - BC = 0인 경우 두 직선은 평행 또는 일치합니다.

컴퓨터 계산 이 햇갈려서 오래 걸렸다. 

def solution(line):
    answer = []
    lines = []
    x_min, x_max, y_min, y_max = float('inf'), -float('inf'), float('inf'), -float('inf')
    for i in range(len(line)-1):
        for j in range(i, len(line)):
            A,B,E = line[i][0], line[i][1], line[i][2]
            C,D,F = line[j][0], line[j][1], line[j][2]
            # 또, AD - BC = 0인 경우 두 직선은 평행 또는 일치합니다.
            val = A*D - B*C
            if val != 0:
                denominator = (A * D - B * C)
                if denominator != 0:
                    x = (B * F - E * D) / denominator
                    y = (E * C - A * F) / denominator
                    if x.is_integer() and y.is_integer():
                        x, y = int(x) , int(y)
                        lines.append((x, y))
                        x_min, x_max, y_min, y_max = min(x_min, x), max(x_max, x), min(y_min, y), max(y_max, y)

    answer = [['.' for _ in range(x_max - x_min + 1)] for _ in range(y_max - y_min + 1)]
    for x, y in lines:
        answer[y_max - y][x - x_min] = '*'

    return [''.join(i) for i in answer]

line = [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]]
print(solution(line))

line = [[0, 1, -1], [1, 0, -1], [1, 0, 1]]
print(solution(line))

반응형

'문제 > 프로그래머스' 카테고리의 다른 글

[1차] 캐시  (0) 2022.02.28
이진 변환 반복하기  (0) 2022.02.28
동명 동물 수 찾기  (0) 2022.02.16
최솟값 구하기  (0) 2022.02.16
중성화 여부 파악하기  (0) 2022.02.16
반응형

출처 : 프로그래머스

 

코딩테스트 연습 - 동명 동물 수 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

-- 코드를 입력하세요
SELECT NAME
     , COUNT(NAME) AS COUNT
FROM ANIMAL_INS 
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
반응형

'문제 > 프로그래머스' 카테고리의 다른 글

이진 변환 반복하기  (0) 2022.02.28
교점에 별 만들기  (0) 2022.02.19
최솟값 구하기  (0) 2022.02.16
중성화 여부 파악하기  (0) 2022.02.16
점프와 순간 이동  (0) 2022.02.16

+ Recent posts