728x90
반응형

 

 

 

익선동 맛집 오죽이네 닭매운탕

오늘은 오랜만에 친구들을 만나 익선동 오죽이네를 갔어요! 최근에 신관이 생겼다는 소식을 듣고 신관으로 갔어요😎 5번 출구로 나와 낙원상가쪽으로 건너와서 5분 정도 걸어가면 나와요 본관

mofari.tistory.com

 

점심에 오죽이네를 배불리 먹어서

카페 가기 전에 익선동 골목을 좀 걸었어요 : )

 

 

 

 

 

 

예쁜 가게들이 많아서 보는 재미 룰루😝

친구들이 블로그에 이런 거 올려줘야한다구

안 들어간 가게들 사진까지 대신 찍어줌 ㅎㅎ;;

예쁘면 찍고 보는 친구들🤣

이제 카페로 고고!

 

 

 

 

 

저희 간 카페는 시그니처알이라는 곳이에요!

원래 가려던 카페는 사람이 너무 많아서

코시국에 부담스럽다구요

더워서 가까운 곳으로 얼떨결에 들어왔는데

넘 좋았어요!

 

 

 

예쁜 간판

 

 

 

영업시간

매일 10:30~22:00

 

 

 

입구 쪽에 포토존이 있고

사진에 왼쪽 부분과 오른쪽 부분으로

좌석이 나뉘어 있어요!

 

 

 

디저트는 레어 치즈 케이크, 우유 케이크 두 개뿐입니다!

저희는 아아 레어 치즈 케이크 주문!

🐷배부르지만 디저트 배는 따로🐷

 

 

 

주책바가지 친구들이 진동벨 귀엽다고 찍으라 함

 

 

 

반응형

아이스 아메리카노 5,000원

레어 치즈 케이크 7,000원

 

밖에서 땀 흘리다 아아 먹으니 꿀맛...👍

케이크는 치즈는 꾸덕꾸덕

쿠키 크럼은 바삭쫀득

맛있어용!

 

 

카페 화장실은 내부에 있고

남녀 분리되어있고 깨끗해요!

 

 

 

카페에서 놀다가 사진 찍으러 갔어요!

인생네컷만 가봤었는데

포토이즘이 있어서 요기로!

카페에서 걸어서 2분!

 

 

 

엉망이지만 잘 나온 척 올려봅니당ㅎㅎ

 

 

내돈내산 후기였습니다

728x90
반응형
728x90
반응형


오늘은 오랜만에 친구들을 만나
익선동 오죽이네를 갔어요!
최근에 신관이 생겼다는 소식을 듣고
신관으로 갔어요😎

5번 출구로 나와서
낙원상가쪽으로 건너와서
5분 정도 걸어가면 나와요

 

 

 

본관에서 걸어서 5분정도 거리로 가깝더라구요



오죽이네 신관

평일 11:30 ~ 22:00
(Break Time 15:00 ~ 16:00, 주말은 없음)
주말 12:00 ~ 22:00


 

저희는 12시 40분쯤 도착해서
사람이 많진 않았어요
사진 우측으로도 자리가 더 있어요!


 

저희는 여자 세 명이서
소자에 떡사리를 추가했어요!

 

728x90

🐷닭매운탕 나오기 전까지 정독하기🐷
⭐5번 중요⭐



 

닭매운탕 소(小) 25,000원
떡사리 1,000원

 


기본으로 감자, 양파, 대파가 들어있어요
닭매운탕이라 국물이 많아요!
국물이 텁텁하지 않고 시원해요👍
술 먹으면서 바로 해장까지 될 것 같은 시원함!!
(다음엔 쏘주랑 먹으러 올거예요😏)
닭가슴살 부분도 부드러워서
부담 없이 먹을 수 있어요




 

반응형

 

사리로 넣은 떡은 짧뚱떡!
같이 먹은 친구들도
떡 맛있다구 두 번 추가해서 먹었어요ㅎㅎ
떡은 10~15개 정도 주시는 것 같아요!

 

 

 

볶음밥 3,000원


배불러도 볶음밥은 포기 못해😎
볶음밥 좀 먹어본 사람이라면
앞접시에 국물 덜어두는 센스👍
밥을 국물에 살짝 찍어먹으면 더 맛있어요!


본관이 신관보다 쾌적하고 깔끔한 느낌이라서
앞으로는 신관으로 갈 것 같아요!
화장실도 내부에 있고 깨끗! 중요⭐
(그럼 저는 2차 디저트 먹으러 총총..!)
카페 후기도 구경오세요 : )


 

 

익선동 카페 시그니처알

익선동 맛집 오죽이네 닭매운탕 오늘은 오랜만에 친구들을 만나 익선동 오죽이네를 갔어요! 최근에 신관이 생겼다는 소식을 듣고 신관으로 갔어요😎 5번 출구로 나와 낙원상가쪽으로 건너와서

mofari.tistory.com

 



내돈내산 후기였습니다

 

 


 

 

 

728x90
반응형
728x90
반응형

지난 주말 안양역 저의 사케동 최애 맛집 마쯔를 다녀왔습니당

 

 

매일 11:30 ~ 20:30

Break Time 15:30 ~ 17:00

 

 

 

 

 

 

12시쯤 도착해서 첫 손님인 줄 알았는데 이미 두 팀이 있었어요

좌석은 8명 정도가 앉을 수 있던 것 같아요!

저는 아나고 텐동을 주문했습니당!

 

텐동 준비 중이신 사장님😀

사장님께서 손을 자주자주 씻으셔서 안심하고 먹을 수 있어요!

준비되는 동안 배달 알림도 많이 오더라구요!

 

 

반응형

아나고 텐동 (10,000원)

주문한 아나고 텐동이 나왔습니당!! 🐷🐷

밥이 안보일만큼 많이 쌓여있는 튀김들은 사랑입니다💛

 

 

순서대로 깻잎, 연근, 단호박, 아나고(붕장어), 꽈리고추예요

아나고가 정말 크고 맛나요!

다른 텐동집도 가봤지만

여기처럼 바삭한 식감내는곳이 없더라구요!

아! 밥과 간장소스는 부족하다고 말씀하시면 더 주신답니당

항상 사케동만 먹었었는데 아나고 텐동도 맛있어요ㅠㅠ!!

다음 방문 때는 아나고 새우 텐동 먹어볼게요!

 

 

내돈내산 후기였습니다 

728x90
반응형
728x90
반응형

 

회사에서 열일하던 중

오후 3시쯤 미리 신청해두었던

잔여 백신 접종 알림이 와서

다 던지고 병원으로 달려감!

운 좋게도 내 선배님도 같이 맞게 되어 같이 달려감!

 

 

 

20대 중반인 내가 부모님보다

먼저 맞게 될 줄이야ㅠㅠ..!

그래도 K-효도에 성공하여

부모님 백신도 예약해둔 상태ㅎㅎ

 

 

저는 회사에서 도보 2분거리에 있는

가야성모의원에서 접종했습니당

준비물은 신분증!

 

 

접수하고 자리에 앉아 몇 가지 항목 체크한 후

의사 선생님께 간단한 진료 및 확인받은 후

바로 접종!

 

 

다른 주사보다 아파서

아직도 팔뚝에 주사바늘 꽂혀있는 줄 알고

계속 옷 잡고 있으니까

간호사선생님께서 "이제 옷 내리셔도 돼요~"

머쓱하게 주섬주섬한 후

대기실로 나왔습니당..ㅎㅎ

 

 

 

 

접종 증명 문자

10분 정도 후 문자가 왔습니다!

1차 접종 증명과 2차 일정 알림 문자입니다

 

 

 

 

coov 예방접종 증명서

후훗! 나도 COOV(쿠브) 어플에 증명서 생겼다!

 

 

 

맞은 당일은 주사 맞은 부위가

살짝 불편한 정도였고

다른 증상은 전혀! 없었습니다!

다음 날 아침에 일어나니

팔이 좀 많이 뻐근하긴 하지만

열도 없고 머리도 안 아프고 괜찮았어요!

예방접종 특별휴가로 회사를 쉴 수 있어서 그런가ㅎ

아파도 안 아플 것 같아요

 

그럼 2차 후기때 봐요~!!

 

 

 

화이자 백신 2차 후기 부작용

지난 수요일 백신 2차 접종을 했어요 원래는 1차 접종 4주 후에 맞는거였는데ㅠㅠ 2주가 미뤄지면서 6주 만에 맞았어요.. 병원은 1차 때와 마찬가지로! 회사 3분 거리 가야 성모의원! 1차는 오후 3

mofari.tistory.com

 

728x90
반응형
728x90
반응형

2021.07.29

문제명 : 2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어

사용언어 : Javascript

개발 시간 : 90분 + 5분....

 

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

📋 문제 설명

이번 문제는 단순한 문제였으나 왜 이렇게 복잡하게 생각을 한건지 시간을 너무 많이 뺏겼었습니다ㅠㅠ...

결국 다음날 다시 풀어보니 5분만에 해결,,, 바보 기매연...ㅠㅠ

주어진 s 문자열 안에서 영단어와 대응되는 부분을 대응하는 숫자로 변경하면 되는 문제입니다

 

📢 입출력 예

 

🔑 문제 풀이

function solution(s) {
    var answer = "";
    var tmp = "";
    var arr = ['zero','one','two','three','four','five','six','seven','eight','nine'];
    
    for(var i=0; i<s.length; i++){
        if(isNaN(s[i]) == false){  // 숫자
            answer += s[i];
        }else{                     // 문자
            tmp += s[i];		   // 임시 보관함 tmp에 문자열 누적
            for(var j=0; j<arr.length; j++){ 
                if(tmp == arr[j]){ // 대응하는 영단어 있을 경우
                    answer += j;
                    tmp = "";
                }
            }
        }
    }
        
    return answer*1;
}

 

🔔 새로 알게 된 점

다른 사람 풀이를 보니 단순히 replace만 반복하여 푼 방법도 있었습니다.

참고하면 좋을 것 같습니다.

그리고 문제가 너무 안풀릴때는 잠시 쉬어가는걸로,,,,

728x90
반응형
728x90
반응형

 

 

[출처 : Code with Joyce 유튜브]
기한 강의
~ 2021.07.18 1편 (기본 문법)
~ 2021.07.25 2편 (고급 문법)
~ 2021.08.01 3편 (심리테스트 앱 만들기)

 

728x90
반응형
728x90
반응형

 

 

[출처 : Code with Joyce 유튜브]
기한 강의
~ 2021.07.18 1편 (기본 문법)
~ 2021.07.25 2편 (고급 문법)
~ 2021.08.01 3편 (심리테스트 앱 만들기)

 

728x90
반응형
728x90
반응형

2021.07.17

문제명 : 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천

사용언어 : Javascript

개발 시간 : 50분

 

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

📋 문제 설명

복잡해보이지만 주어진 규칙을 순서대로 적용해주면 되는 문제입니다.

 

📢 입출력 예

 

🔑 문제 풀이

function solution(new_id) {
    var answer = '';
    
    new_id = new_id.toLowerCase();  // 1. 소문자로 치환
    new_id = new_id.replace(/[^a-z0-9-._]/gi, ''); // 2. 특정문자 외 제거

    // 3단계 : 연속된 . 하나로 치환
    var str = '';
    for(var i=0; i<new_id.length; i++){
        if(new_id[i] == '.' && new_id[i-1] == '.'){
            str += '';
        }else{
            str += new_id[i];
        }    
    }
    new_id = str;
   
    // 4단계 : . 처음 또는 끝일 경우 제거
    new_id = four(new_id);
    
    // 5단계
    if(new_id == '') new_id = 'a';
   
    // 6단계
    if(new_id.length>15) new_id = new_id.substring(0,15);
    new_id = four(new_id);
        
    // 7단계
    new_id = seven(new_id);

    answer = new_id;
    return answer;
}

function four(new_id){
    if(new_id.substring(0,1) == '.') new_id = new_id.slice(1);
    if(new_id.substring(new_id.length-1) == '.') new_id = new_id.substring(0,new_id.length-1);
    
    return new_id;
}

function seven(new_id){
    if(new_id.length < 3){
        new_id = new_id + new_id.substring(new_id.length-1);
        return seven(new_id);
    }else{
        return new_id;
    }
}

 

🔔 새로 알게 된 점

문제가 어렵지는 않았으나 정규식 부분에서 시간이 많이 잡힌 것 같습니다.

/[^a-z0-9-._]/gi 에서

^~ : ~를 제외하고

a-z : a부터 z까지

0-9 : 0부터 9까지

-._ 등등 : 해당 문자열

728x90
반응형
728x90
반응형

2021.06.26

문제명 : 2021 Dev-Matching: 웹 백엔드 개발자(상반기) - 로또의 최고 순위와 최저 순위

사용언어 : Javascript

개발 시간 : 10분

 

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

📋 문제 설명

초등학교때 수학시간에 자주 등장했던 물을 엎질러 종이가 일부 찢어졌을때 값을 유추하는 문제입니다.

최저 순위 = 보여지는 숫자 안에서 맞은 갯수

최고 순위 = 보여지는 순자 안에서 맞은 갯수 + 안보이는 숫자(0)이 모두 당첨번호라는 가정

 

📢 입출력 예

 

🔑 문제 풀이

function solution(lottos, win_nums) {
    var answer = [];
    var cnt = 0; // 0갯수
    var win = 0; // 맞은 로또 갯수
    
    
    for(var i=0; i<lottos.length; i++){
        if(lottos[i] == 0){
            cnt++;
        }else{
            for(var j=0; j<win_nums.length; j++){
                if(win_nums[j] == lottos[i]){
                    win++;
                }
            }
        }
    }
    
    var min = rank(win);
    var max = rank(win+cnt);
    
    answer = [max,min];
    
    return answer;
}


function rank(win){
    var rank = 0;
    
    if(win == 6) rank = 1;
    else if(win == 5) rank = 2;
    else if(win == 4) rank = 3;
    else if(win == 3) rank = 4;
    else if(win == 2) rank = 5;
    else rank = 6;
    
    return rank;
}
728x90
반응형
728x90
반응형

2021.06.26

문제명 : 2020 카카오 인턴십 - 키패드 누르기

사용언어 : Javascript

개발 시간 : 70분

 

 

코딩테스트 연습 - 키패드 누르기

[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"

programmers.co.kr

 

📋 문제 설명

왼손 시작은 *, 오른손 시작은 #입니다. 

1,4,7은 왼손 3,6,9는 오른손 그 외는 가까운 손이 누릅니다.

만약 거리가 같다면 왼손잡이는 왼손이, 오른손잡이는 오른손이 누릅니다.

 

📢 입출력 예

차근히 따라 하시면 입출력 예는 이해가 될 것입니다.

 

🔑 문제 풀이

키패드의 최하단에  *  0  # → 10  11  12 라고 바꿔서 생각해보았습니다.

그럼 1부터 12까지의 키패드가 됩니다.

(1,4,7)과 (3,6,9)는 각각 왼손, 오른손이 누르기로 정해져 있으므로 가운데 숫자를 누를 때만 생각해봤습니다.

 

⁕ 왼손 시작일 경우

예를 들어, 만약 왼손이 1에 위치하고, 다음 눌러야 할 숫자가 5일 경우를 생각해봅시다.

무조건 오른쪽으로 한 칸은 이동해야 합니다.

그리고, 줄마다의 차이는 3씩이므로 3씩 몇 번 이동해야 하는지를 확인합니다.

1(현재 위치) + 1 + (3 * n번) = 5(도착 위치)

1+n 만큼 이동하는 횟수가 필요합니다. n은 1이므로 총 거리 2만큼 이동합니다.

 

⁕ 오른손 시작일 경우

예를 들어, 만약 오른손이 6에 위치하고, 다음 눌러야 할 숫자가 2일 경우를 생각해봅시다.

무조건 왼쪽으로 한 칸은 이동해야 합니다.

그리고, 줄마다의 차이는 3씩이므로 3씩 몇 번 이동해야 하는지를 확인합니다.

6(현재 위치) - 1 + (3 * n번) = 2(도착 위치)

1+n 만큼 이동하는 횟수가 필요합니다. 

여기서 n은 -1입니다.

6에서 2로 이동하기까지는 2칸이 걸리는 것을 고려해보았을 때, n은 절댓값 처리가 필요할 것으로 예상됩니다.

따라서 1+(|-1|) = 2만큼 이동합니다.

 

 

왼손, 오른손 모두

만약 손가락이 가운데 위치해 있을 때 가운데 숫자를 눌러야 한다면 처음 +1 또는 -1 과정은 생략될 것입니다.

이미 가운데로 이동되어있기 때문입니다.

 

 

이를 코드로 옮겨보면,

function solution(numbers, hand) {
    var answer = '';
    var left = 10;	// *
    var right = 12;	// #
    
    for(var i=0; i<numbers.length; i++){
        if(numbers[i] == 0){ // 0
            numbers[i] = 11;
        }
         
        // 무조건 왼손
        if(numbers[i] == 1 || numbers[i] == 4 || numbers[i] == 7){
            answer += 'L';
            left = numbers[i];
        }
        // 무조건 오른손
        else if(numbers[i] == 3 || numbers[i] == 6 || numbers[i] == 9){
            answer += 'R';
            right = numbers[i];
        }
        // 가까운 손가락, 같다면 잡이를 확인
        else {
            var L = 0; // 현재 왼손이 위치한 숫자 키패드
            var R = 0; // 현재 오른손이 위치한 숫자 키패드
            
            // 왼손이 좌측에 위치해있다면
            if(left == 1 || left == 4 || left == 7 || left == 10){
                L = Math.abs((numbers[i] - (left + 1)) / 3) + 1;
            }
            // 왼손이 가운데 위치해있다면
            else{ // 2 5 8 0(11)
                L = Math.abs((numbers[i] - left) / 3);
            }
            
            // 오른이 좌측에 위치해있다면
            if(right == 3 || right == 6 || right == 9 || right == 12){
                R = Math.abs((numbers[i] - (right - 1)) / 3) + 1;
            }
            // 오른손이 가운데 위치해있다면
            else{ // 2 5 8 0(11)
                R = Math.abs((numbers[i] - right) / 3);
            }
        
        
        	// 거리가 같다면
            if(L == R){
                if(hand == "right"){
                    answer += 'R';
                    right = numbers[i];
                }else if(hand == "left"){
                    answer += 'L';
                    left = numbers[i];
                }
            }else if(L < R){	// 왼손이 가깝다면
                answer += 'L';
                left = numbers[i];
            }else if(L > R){	// 오른손이 가깝다면
                answer += 'R';
                right = numbers[i];
            }
    }
    }
    
    return answer;
}

 

🔔 새로 알게 된 점

정답을 제출 후 다른 사람 풀이를 확인하니, 키패드의 숫자들은 배열에 담고 관리하는 소스들이 많았습니다.

그중 인상적이었던 것은 키패드 숫자들을 행렬처럼 관리하는 것입니다.

const grid = [

                [0,-2], [-1,1], [0,1],

                [1,1], [-1,0], [0,0],

                [1,0], [-1,-1], [0,-1],

                [1,-1], [-1,-2], [1,-2]

];

이렇게 관리하면 행끼리의 거리 + 열끼리의 거리만큼 이동거리가 구해진다는 것을 이용했다면 더 간단하게 소스를 짤 수 있었을 것 같습니다.

728x90
반응형

+ Recent posts