5. Element가 배치되는 방법(CSS layout)엘리먼트가 배치되는 방식엘리먼트를 화면에 배치하는 것을 layout 작업이라고도 하고, Rendering 과정이라고도 합니다. 편의상 우리는 배치라고 할겁니다.엘리먼트는 위에서 아래로 순서대로 블럭을 이루며 배치되는 것이 기본입니다. 하지만 웹사이트의 배치는 다양하게 표현 가능해야 하기 때문에, 이를 다양한 방식으로 배치할 수 있도록 css에는 추가적인 속성을 제공합니다.중요하게 이해해야 할 속성은 다음과 같습니다. display(block, inline, inline-block)position(static, absolute, relative, fixed)float(left, right)이 속성을 중심으로 엘리먼트의 배치를 이해하는 것이 중요합니다...
1. CSS 선언방법CSS의 구성selector(선택자), property, value 로 구성span { color : red; } span : selector(선택자)color : propertyred : valuestyle을 HTML페이지에 적용하는 세 가지 방법 inlineinternalexternal1) html 태그 안에다가 : inline World ! HELLO world ! 다른 CSS파일에 적용한 것 보다 가장 먼저 적용합니다.2) style 태그로 지정하기 : internal World ! span { colr : red; } HELLO world ! 구조와 스타일이 섞이게 되므로 유지보수가 어렵습니다. 별도의 CSS파일을 관리하지 않아도 되며 서버에 CSS파일을 부르기 위해 별도의 ..
1. HTML Tags 태그의 종류태그는 그 의미에 맞춰서 사용해야 한다. 링크 이미지 목록 제목www.w3schools.com/Tags/ (태그의 종류 참고)기본예제 JS Bin 반갑습니다. 여기 여러분들이 좋아하는 과일이 있어요. 사과 바나나 메론 귤 2. HTML Layout 태그 ‘레이아웃(Layout)’이란 ‘배치’라는 뜻으로, HTML 태그로 감싸진 각 정보 요소를 화면상의 어느 위치에 어떻게 자리잡을지를 결정하는 것을 말합니다.레이아웃을 위한 태그레이아웃을 구성하는 태그도 역시 그 의미에 맞춰서 쓴다. headersectionnavfooterasidehtml태그는 레이아웃을 할 때도 그 의미에 맞는 것을 찾아 사용해야 검색도 더 잘되고, 가독성 있는 코드를 만들 수 있게 됩니다. 기본예제 J..
문제https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V61LqAf8DFAWu풀이모든 정점을 돌면서 Bfs로 서비스 영역을 늘려가는 식으로 구현했습니다.Bfs에서 현재 들어있는 큐의 사이즈만큼만 탐색을 한 뒤에 depth를 늘려줬습니다.이 때 depth 값이 서비스 영역의 크기 K와 똑같기 때문에 depth를 이용해 운영 비용을 계산했습니다.소스코드#include #include #include using namespace std; #define MAX_N 21 #define MIN_INF -987654321 int N, M; int city[MAX_N][MAX_N]; int memo[MAX_N + 1];..
문제https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5VwAr6APYDFAWu풀이내가 생각할 때 이 문제에서 중요한 점은 이전에 탐색했던 방향과 반대 방향으로 가지 않는 점과 모든 방향은 한번씩만 사용되는 점 같다.방향에 따른 dx, dy를 저장했고 모든 점을 출발점으로 시작시켜보고 가장 큰 값을 저장했다.초기 시작 방향은 4가지 방향 모두 다 해보는 것이 아니고 오른쪽 아래만 해봐도 모든 경우를 탐색할 수 있기 떄문에 오른쪽 아래만으로 잡았다.소스코드#include #include #include using namespace std; #define MAX_N 21 #define MIN_INF -98765..
문제https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu풀이굉장히 오래 걸린 문제다. 처음 접근은 Dfs를 돌며 이차원 행렬을 넘겨주는 식으로 구현했었는데 이렇게 되면 항상 성능검사를 해야돼서 구현이 정말 복잡했다.성능검사를 하는 구현도 복잡해서 잘 못했고 재귀함수도 올바른 방법으로 구현을 하지 못했던 것 같다.결국엔 해설을 찾아보고 이해가 쉽게 가는 방법으로 다시 코드를 짜봤다.일단 Dfs로 모든 행을 하나씩 돌아보며 i-1 번째 행까지의 연속된 셀의 개수를 세고 k개 이상이면 그 열의 성능검사가 통과했다는 것을 저장해서 넘겼다.해당하는 열이 성능검사를 통과 했는지의 여부는 비트마스..
문제https://www.acmicpc.net/problem/13460풀이Dfs를 통해서 기울이는 모든 방향을 탐색해야된다.이 때 주의할 점은 아래와 같다. 이전의 기울인 방향으로는 다시 기울이지 않는다.이전의 기울인 방향의 반대 방향으로도 기울이지 않는다 (원점이 되기 때문에) 원래는 2048 처럼 기울이는걸 구현하려고 했지만 빨간공과 파란공의 우선순위 비교까지 하려면 너무 복잡해져서 포기하고 답을 찾아봤다.여러 사람들이 빨간공 따로 파란공 따로 그냥 구현했고 위치가 똑같을 때만 우선순위를 비교해 다시 이동시키는걸 확인했다.삼성 기출문제 중에 가장 난이도가 높은 문제 같다.실제로 시험에서 이런 Dfs + 구현 문제가 나오면 풀지 못할 것 같다.소스코드#include #include using names..
문제https://www.acmicpc.net/problem/12100풀이제일 싫어하는 구현문제다. 중간에 큐 사용에 대한 오류가 떴는데 중단점을 이상한 곳으로 찍어놓고 디버깅을 돌려서 해결하는데 너무너무 오래걸렸다.위, 아래, 왼쪽, 오른쪽 모든 방향을 Dfs를 통해 완전탐색하면 되는 문제다.문제의 핵심은 주어진 조건에 맞게 한 쪽 방향으로 이동한 경우를 만드는 점이다. 똑같은 수가 세 개가 있는 경우에는 이동하려고 하는 쪽의 칸이 먼저 합쳐진다. 이와 같은 조건 때문에 0이 아닌 수를 큐에 저장하는 순서는 아래와 같이 된다.방향이 위인 경우 (0,0) ~ (N-1,0) 방향이 아래인 경우 (N-1,0) ~ (0,0) 방향이 왼쪽인 경우 (0,0) ~ (N-1,0) 방향이 오른쪽인 경우 (N-1,0) ..
문제https://www.acmicpc.net/problem/14500풀이테트로미노의 종류는 총 5가지이지만 Dfs를 통해 탐색을 할 수 있는 경우는 4가지다.ㅗ모양은 Dfs로 탐색을 할 수 없기에 따로 탐색하는 함수를 만들었다.이 경우에는 인접한 칸을 모두 검사했을 경우 그 중에 가장 작은 값을 빼서 최대값을 구하는 방법으로 구현했다.처음에 접근을 테트로미노마다 다른 Dfs를 만들어서 각각 다른 회전을 써야되나 싶어서 어려워한 문제다.문제를 좀 더 쉽게 풀 수 있는 방법부터 생각해보는 게 좋을 것 같다.소스코드#include #include using namespace std; #define MAX_SIZE 501 #define MIN_INF -987654321 #define MAX_INF 987654..
문제https://www.acmicpc.net/problem/14499풀이처음에는 주사위를 굴릴 때 윗면과 바닥면만 바뀌는걸로 생각하고 시작했다.문제에서 전개도를 준 점을 생각해보니 이동할 때마다 주사위의 상태를 바꿔줘야했다.주사위를 정육면체라고 생각하고 cube[6] 을 만들어 각 면의 정보를 저장했다.이동할 때 상태변화는 다음과 같다.# 동쪽으로 이동하는 경우 이전 칸에서의 오른쪽 면이 현재 칸에서의 바닥면이 된다.이전 칸에서의 왼쪽 면이 현재 칸에서의 윗면이 된다.이전 칸에서의 바닥면이 현재 칸에서의 왼쪽 면이 된다.이전 칸에서의 윗면이 현재 칸에서의 오른쪽 면이 된다.# 서쪽으로 이동하는 경우 오른쪽 -> 윗면왼쪽 -> 바닥윗면 -> 왼쪽바닥 -> 오른쪽# 북쪽으로 이동하는 경우 앞쪽 -> 윗면뒤..