sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • docker
  • kotlin
  • 안드로이드 스튜디오
  • 레벨2
  • 연습문제
  • 백준
  • DB
  • 고득점KIT
  • mariadb
  • Android Studio
  • 프로그래머스
  • 알고리즘
  • 고득점 Kit
  • 오블완
  • 레벨3
  • java
  • JPA
  • nginx
  • spring boot
  • 티스토리챌린지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

Algorithm/Programmers

Programmers 완전탐색 :: 레벨2 :: 카펫

2022. 7. 19. 09:47
728x90

풀이

/**
 * 설명
 * - 프로그래머스 > 고득점 kit > 완전탐색 > level2 > 카펫
 * - 경로 : https://school.programmers.co.kr/learn/courses/30/lessons/43238
 *
 * */
class Carpet {

    fun solution(brown: Int, yellow: Int): IntArray{

        /**
         * 로직설명
         * - 내부 사각형(노랑타일)의 가로길이를 w, 세로길이를 h 라고 하자.
         *
         * - #1 첫번째 조건
         * -- 2w + 2h + 4(꼭지점 타일 갯수) = brown
         *
         * - #2 두번째 조건
         * -- w*h = yellow
         *
         * */
//        2w + 2h + 4 = brown
//        w * h = yellow

        var yellowWidth = 0
        var yellowHeight = 0

        var yellowSurfaceAreaArray: IntArray? = null
        var result: IntArray? = null

        val scaledBrown = (brown - 4)/2

        val firstCondMutableList = mutableListOf<IntArray>()

        for(width in scaledBrown/2..scaledBrown){
            yellowWidth = width
            yellowHeight = scaledBrown - width

            if(yellowWidth+yellowHeight == scaledBrown){
                if(yellowHeight<=yellowWidth){
                    firstCondMutableList.add(intArrayOf(yellowWidth, yellowHeight))
                }
            }
        }

        for(firstCondEle in firstCondMutableList){
            if(firstCondEle[0] * firstCondEle[1] == yellow){
                yellowSurfaceAreaArray = firstCondEle
                break
            }
        }

        if(yellowSurfaceAreaArray == null){
            // 정답이 없다?
            return intArrayOf()
        }
        else{
            yellowWidth = yellowSurfaceAreaArray[0] + 2
            yellowHeight = yellowSurfaceAreaArray[1] + 2

            result = intArrayOf(yellowWidth, yellowHeight)

            println(result.toList())

            return intArrayOf(yellowWidth, yellowHeight)
        }
    }
}

출처

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 풀이 코드

 

GitHub - sggnology/programmers-algorithm: 프로그래머스 알고리즘 코드 정리입니다.

프로그래머스 알고리즘 코드 정리입니다. Contribute to sggnology/programmers-algorithm development by creating an account on GitHub.

github.com

 

728x90

'Algorithm > Programmers' 카테고리의 다른 글

Programmers 동적계획법 :: 레벨3 :: N 으로 표현  (0) 2022.07.26
Programmers DFS/BFS :: 레벨 2 :: 게임 맵 최단거리  (0) 2022.07.20
Programmers 이분탐색 :: 레벨3 :: 입국심사  (0) 2022.07.14
Programmers 스택/큐::레벨2::프린터  (0) 2022.04.08
Programmers :: 해시 전화 번호 목록 레벨2  (0) 2022.03.26
    'Algorithm/Programmers' 카테고리의 다른 글
    • Programmers 동적계획법 :: 레벨3 :: N 으로 표현
    • Programmers DFS/BFS :: 레벨 2 :: 게임 맵 최단거리
    • Programmers 이분탐색 :: 레벨3 :: 입국심사
    • Programmers 스택/큐::레벨2::프린터
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바