지난번에 소개드렸던 툴중에

Autoset10이라는 녀석이 있었죠?

 

 

 

 

Autoset10을 통하면

웹서버 뿐만이 아니라

MySQL DB도 로컬환경에

너무나도 쉽게 바로 띄울 수 있습니다.

 

 

 

 

 

 

 

먼저 지난번에 설치한

Autoset10 메니저를 실행합니다.

단 버튼 2개로 제어가 가능하다니

정말 편리하죠?^^

 

벌써 끝입니다.

 

이렇게 하면 DB가 3306포트로 여러분의

로컬 PC에 떠있는 상태입니다.

 

 

 

 

 

 

이제 DB Client 툴을 설치하셔서

로컬 MySQL DB에 붙으시면 되는데요.

Toad라는 아주 유용한 툴이 있습니다.

https://toad-for-mysql.softonic.kr/

 

 

 

 

 

 

 

무료 다운로드를 눌러주시고요~

설치 완료 후에 실행해줍니다.

 

 

 

 

실행시키시면 상단 좌측에 이런 메뉴가 있는데요

저 아이콘을 클릭하신 후

Connection정보를 넣어주시면 되는데요

 

 

오토셋의 초기 ID/PWD는

root/autoset

입니다.

 

기본포트는 3306이고요^^

 

이렇게 입력하시고 Conenct를 누르시면

MySQL DB에 접속하실 수 있고

Database와 Table들을 자유롭게 제어하실 수 있습니다.

 

쉽고 빠른 MySQL DB개발환경 설정!!

 

이상으로 오늘의 포스팅을 마치겠습니다:D

 

 

 

 

 

 

 

 

로스 산토스는 찬란한 햇빛을 받으며 거대하게 뻗은 대도시입니다. 이곳에는 감동적인 인간 승리를 이뤄낸 사람들과 수많은 아이돌 스타, 퇴물이 되어가는 유명인사 등, 한때는 서구 세계의 부러움을 한몸에 받았던 사람들이 경제 불황과 싸구려 리얼리티 TV 시대에 살아남으려 발버둥치고 있습니다.

 

이런 혼란의 시기에 세 명의 서로 다른 범죄자들이 생존과 성공의 기회를 잡고자 계획을 세웁니다. 별 볼 일 없는 건달 프랭클린은 제대로 된 기회를 잡아 큰돈을 벌고 싶어합니다. 화려한 전과자였던 마이클은 은퇴 후 지루한 생활을 보내다가 다시 화려한 시절을 꿈꿉니다. 싸구려 마약에 찌든 난폭한 미치광이 트레버는 큰 건수를 노리고 있습니다. 막다른 길에 내몰린 이들은 각자의 모든 것을 걸고 일생일대의 대담하고 위험한 사건을 잇달아 저지릅니다.

 

역대 최고로 거대하고 역동적이며 다양한 오픈 월드 안에서 Grand Theft Auto V는 새로운 방식으로 이야기 전개와 게임 플레이를 혼합했습니다. 플레이어는 게임의 세 주인공의 인생에 들락날락하면서 서로 교차하는 이야기를 모두 플레이하게 됩니다.

 

 

 

 

 

 

 

 

*PC Only(치트키)

확실히 치트키는 플스보다는 PC가 적용하기 쉬운것 같습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

요즘 홈페이지 제작 의뢰 많이들 하시죠?

뭔가 회원정보를 받고 로그인을 하고,

관리자 화면 같은 것을 제공하는

복잡한 웹사이트가 아니라면

이 포스팅에 주목해주세요^^

 

단순 회사 소개 홈페이지나

이벤트성 페이지라면 아주 쉽게 만들수 있습니다.

 

 

 

 

 

이번 포스팅에서는 개발환경 설정

하는 방법을 알아보려 합니다.


Autoset이라는 아주 편리한 프로그램이 있습니다.

HTML, PHP 기반 홈페이지를 아주 쉽게 띄울 수 있고요

설치만 하면 서버 설정 필요 없이

쉽게 홈페이지를 띄울 수 있습니다.

 

 

 

 

먼저 구글이나 네이버에서 Autoset10을 검색해보세요

 

 

 

 

 

 

 

여러분 환경에 맞는 설치파일을 선택해주시면 됩니다.

 

 

 

2015년 버전이 꽤 오래됐는데도

정말 잘 되어 있어요

 

설치를 끝내시면 이런 매니저를 실행시킬 수 있어요

 

 

 

 

 

 

 

 

.

웹서버 시작을 누르시면

서버가 뜨고요

 

 

Autoset10 설치 위치에 있는

public_html 폴더가 이제

여러분의 홈페이지 소스 파일이 올라갈 위치입니다.

 

 

 

 

 

 

여러분의 소스 파일을 올려주시고

Autoset10 메니져를 통해

웹서버 시작을 눌러주시면

여러분의 브라우저에 홈페이지가 보여집니다.

다음 포스팅에서는 이 환경에

간단한 랜딩 페이지를 띄워볼게요

 

 

요즘 Toad를 MySQL Client 툴로 많이 사용하죠.

 

사용도 편리하고, DB Data를 Import/Export도 쉽게 받으실 수 있습니다.

Freeware이지만 서비스가 종료된 후 요즘 잘못된 링크가 많아서 본 포스팅을 통해 공유드립니다.

 

 

 

 

아래 링크를 통해 Toad For MySQL 7.9을 받으실 수 있습니다.

 

 


 

나중에 시간이 된다면, 툴 사용법도 같이 포스팅에 올리겠습니다.

 

 

 

 

 

금일 포스팅은 여기서 마치겠습니다.

 

 

 

친구들과 파티룸을 찾고 있었는데

많이 검색해봤는데도 불구하고 마땅한 곳을 찾지 못했어요.ㅠㅠ

구글링으로 웹검색을 좀 해보다가 이 곳을 첨 알게됐는데

너무 괜찮아서 글을 남기게 됐습니다.


파티룸은 보통 30만원 정도 하더라고요.

큰 거실에 요리도 해먹을 수 있게 돼있지만,

결론적으로는 이 곳이 더 낫더라고요.

 

바로 광주 더시티호텔의 루프탑펜트하우스입니다.

외부는 이렇게 생겼어요.

루프탑펜트하우스는 7층에 있는데,

독채로 층 전체를 사용할 수 있었습니다.

생각보다 꽤 넓어요.

 

조명도 밝고 이렇게 깔끔하게 돼있습니다.

전체 사이즈로 보면 일반 파티 이벤트룸의 X2~X3정도는 되는 것 같아요.

테라스가 아주 인상적이었는데요.

저희들이 이용하진 않았지만, 이렇게 온수풀이 있었고

외부에 흔들의자, 소파 등도 있었어요:)

 

저희가 잘 썼던건 바로 이거!!

바베큐를 구워먹을 수 있는 바베큐장이 있었는데~

이렇게 먹으니 정말 맛있더라고요ㅎㅎㅎㅎ

룸은 총 3개가 있었습니다.

생각보다 깔끔하고 좋았습니다.

TV가 있는 룸도 하나 있었고요

 

거실에는 대형 TV와 사운드바가 있었는데,

저희는 술마시느라 많이 이용하지는 않았어요ㅋㅋㅋ

만약 파티룸이나 커플 데이트를 알아보신다면,

여기 정말 강추드립니다.

 

일반 파티룸보다 넓으면서 가격은 15만원대로 반값이에요ㅋㅋㅋ

말도 안되게 싼 가격이죠.

 

일반 호텔은 너무 작고 왠만한 에어비앤비랑 잡고 따져봐도

여기가 압도적으로 좋아요.

 

 

주소 : 광주광역시 쌍암동679-8번지 더시티호텔(비지니스 브띠크호텔)

 

연락처 : 062-972-3500

 

사이트 : www.cityhotel.biz

 

광주시티호텔 City Hotel

광주비지니스호텔 (터미널점/첨단점) ,카페테리아,스타일러,세탁실

cityhotel.biz

 

*Practice 1 : 올바른 괄호

 

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어

  • ()() 또는 (())() 는 올바른 괄호입니다.
  • )()( 또는 (()( 는 올바르지 않은 괄호입니다.

'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

 

s answer
()() true
(())() true
)()( false
(()( false
class Solution {
    boolean solution(String s) {
        boolean answer = false;
        int count = 0;
        for(int i = 0; i<s.length();i++){
            if(s.charAt(i) == '('){
                count++;
            }
            if(s.charAt(i) == ')'){
                count--;
            }
            if(count < 0){
                break;
            }
        }
        if(count == 0){
            answer = true;
        }
        return answer;
    }
}

 

 

*Practice 2 : 스킬트리

 

선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.

예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.

위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다.

선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요.

 

skill skill_trees return
CBD [BACDE, CBADF, AECB, BDA] 2
import java.util.*;

class Solution {
    public int solution(String skill, String[] skill_trees) {
        int answer = 0;
        ArrayList<String> skillTrees = new ArrayList<String>(Arrays.asList(skill_trees));
        //ArrayList<String> skillTrees = new ArrayList<String>();
        Iterator<String> it = skillTrees.iterator();

        while (it.hasNext()) {
            if (skill.indexOf(it.next().replaceAll("[^" + skill + "]", "")) != 0) {
                it.remove();
            }
        }
        answer = skillTrees.size();
        return answer;
    }
}

 

 

*Practice 3 : 큰 수 만들기

 

어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.

예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다.

문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요.

 

 

number k return
1924 2 94
1231234 3 3234
4177252841 4 775841
import java.util.Stack;
class Solution {
    public String solution(String number, int k) {
        char[] result = new char[number.length() - k];
        Stack<Character> stack = new Stack<>();

        for (int i=0; i<number.length(); i++) {
            char c = number.charAt(i);
            while (!stack.isEmpty() && stack.peek() < c && k-- > 0) {
                stack.pop();
            }
            stack.push(c);
        }
        for (int i=0; i<result.length; i++) {
            result[i] = stack.get(i);
        }
        return new String(result);
    }
}

 

*Practice 4: 카펫

 

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.

Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.

Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.

 

brown red return
10 2 [4, 3]
8 1 [3, 3]
24 24 [8, 6]
class Solution {
    public int[] solution(int brown, int red) {
        int[] answer = new int[2];
        int red_x, red_y;
        for(int i = 1; i<=red; i++){
            if(red % i == 0){
                red_y = i;
                red_x = red/i;
                if(brown == 4 + red_x * 2 + red_y * 2){
                    answer[0] = red_x + 2;
                    answer[1] = red_y + 2;
                    return answer;
                }
            }
        }
        return answer;
    }
}
class Solution {
    public int[] solution(int brown, int red) {
        for(int i=1; i<=red; i++) {
            if(red%i==0 && (red/i+i)*2+4==brown) {
                return new int[] {red/i+2, i+2};
            }
        }
        return null;
    }
}

 

*Practice 5: 짝지어 제거하기

 

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다.

예를 들어, 문자열 S = baabaa 라면

b aa baa → bb aa → aa 

의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다.

 

 

s result
baabaa 1
cdcd 0
import java.util.*;

class Solution
{
    public int solution(String s)
    {
        // 문자열을 캐릭터 배열로 변환
       char[] c = s.toCharArray();
       ArrayList<Character> list = new ArrayList<>();

       // 캐릭터를 하나씩 리스트에 삽입
       for(char _c : c){
           Add(list, _c);
       }

       // 만약 리스트가 비었다면 짝지거 제거 완료
       if(list.isEmpty()){
           return 1;
       }
       else {
           return 0;
       }
    }

     // 리스트에 캐릭터 하나씩 삽입하는 함수
    public static void Add(ArrayList _list, char _c){
        _list.add(_c);

        // 만약 리스트의 길이가 2보다 크고 && 마지막 두 원소가 같은 캐릭터라면
        if(_list.size() > 1 && (_list.get(_list.size() - 2) == _list.get(_list.size() - 1))){
                // 마지막 두 원소 제거
                _list.remove(_list.size() - 1);
                _list.remove(_list.size() - 1);
        }
    }
}

 

 

*Practice 6: 숫자의 표현

 

Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.

  • 1 + 2 + 3 + 4 + 5 = 15
  • 4 + 5 + 6 = 15
  • 7 + 8 = 15
  • 15 = 15

자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.

 

n result
15 4
public class Expressions {

    public int expressions(int num) {
        int answer = 0;
        int result = 0;

        for(int i = 1; i<=num; i++){
            for(int j = i; j<=num; j++){
                result += j;
                if(result == num){
                    ++answer;
                } else if(result > num){
                    result = 0;
                    break;
                }
            }
        }

        return answer;
    }

    public static void main(String args[]) {
        Expressions expressions = new Expressions();
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        System.out.println(expressions.expressions(6));
    }
}

 

 

 

*Practice 7: 가장 큰 정사각형 찾기

 

1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.)

 

 

0 1 1 1
1 1 1 1
1 1 1 1
0 0 1 0

가 있다면 가장 큰 정사각형은 넓이는 9가 되므로 9를 반환해 주면 됩니다.

 

 

board answer
[[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9
[[0,0,1,1],[1,1,1,1]] 4
class Solution
{
    public int solution(int [][]board) {
        int answer = 0;
        if(board.length==1 && board[0].length==1) {
            if(board[0][0]==1) return 1;
            else return 0;
        }
        for(int y=1; y<board.length; y++) {
            for(int x=1; x<board[0].length; x++) {
                if(board[y][x]==1) {
                    board[y][x] = Math.min(board[y-1][x-1], Math.min(board[y][x-1], board[y-1][x])) + 1;
                }
                if(board[y][x]>answer) {
                    answer=board[y][x];
                }
            }
        }

        return answer*answer;
    }
}

class Solution
{
    public int solution(int [][]board)
    {
        int answer = 1;

        int[][] dp = new int[board.length+1][board[0].length+1];

        int maxLen = 0;
        for(int i=1;i<=board.length;i++){
            for(int j=1;j<=board[0].length;j++){
                if(board[i-1][j-1]==0){
                    dp[i][j]=0;
                }else{
                    dp[i][j] = Math.min(Math.min(dp[i-1][j-1],dp[i-1][j]),dp[i][j-1]) + 1;
                    maxLen = Math.max(maxLen,dp[i][j]);
                }
            }
        }

        answer = maxLen*maxLen;
        return answer;
    }
}

올바른 괄호

+ Recent posts